Android 11 เพิ่มฟังก์ชันการทำงานเพื่อรองรับ 5G ในแอป หัวข้อนี้จะครอบคลุมฟังก์ชันการทำงานและให้ภาพรวมเกี่ยวกับวิธีที่การเพิ่มฟังก์ชันการทำงานเฉพาะของ 5G ลงในแอปจะช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้
สร้างแอปสำหรับ 5G
เมื่อตัดสินใจว่าจะใช้ 5G อย่างไร ให้คิดถึงประสบการณ์การใช้งานประเภทต่างๆ ที่คุณต้องการสร้าง ตัวอย่างวิธีที่ 5G จะช่วยปรับปรุงแอปของคุณมีดังนี้
- ทำให้ประสบการณ์การใช้งานปัจจุบันเร็วขึ้นและดีขึ้นโดยอัตโนมัติเนื่องจากความเร็วและเวลาในการตอบสนองที่ได้รับการปรับปรุงของ 5G
- ยกระดับประสบการณ์ของผู้ใช้ เช่น แสดงวิดีโอ 4k หรือดาวน์โหลดชิ้นส่วนของเกมที่มีความละเอียดสูงขึ้น
- หลังจากยืนยันว่าการใช้อินเทอร์เน็ตมากขึ้นจะไม่ทำให้ผู้ใช้เสียค่าใช้จ่าย ให้รวมประสบการณ์การใช้งานที่ปกติแล้วจะมีให้เฉพาะผ่าน Wi-Fi เช่น ดาวน์โหลดเนื้อหาที่ปกติแล้วจะสงวนไว้สำหรับ Wi-Fi ที่ไม่มีการวัดปริมาณอินเทอร์เน็ต
- มอบประสบการณ์การใช้งานเฉพาะของ 5G ที่ใช้ได้เฉพาะกับความเร็วสูงและเวลาในการตอบสนองต่ำ
ฟังก์ชันการทำงานของ 5G
Android 11 มีการเปลี่ยนแปลงและการปรับปรุงฟังก์ชันการทำงานต่อไปนี้
ตรวจสอบการจำกัดปริมาณการใช้งาน
NET_CAPABILITY_TEMPORARILY_NOT_METERED เป็นความสามารถที่เพิ่มเข้ามาใน Android 11 ซึ่งจะบอกคุณว่า เครือข่ายที่คุณใช้อยู่ไม่มีการวัดปริมาณอินเทอร์เน็ตหรือไม่ โดยอิงตามข้อมูลที่ผู้ให้บริการเครือข่ายมือถือ ให้ไว้
ระบบจะใช้แฟล็กใหม่นี้ควบคู่ไปกับ
NET_CAPABILITY_NOT_METERED
แฟล็กที่มีอยู่จะระบุว่าเครือข่าย ไม่มีการวัดปริมาณอินเทอร์เน็ต เสมอ หรือไม่ และใช้ได้กับการเชื่อมต่อ Wi-Fi และการเชื่อมต่อเครือข่ายมือถือ
ความแตกต่างระหว่างแฟล็กทั้ง 2 รายการคือ NET_CAPABILITY_TEMPORARILY_NOT_METERED อาจเปลี่ยนแปลงได้โดยที่ประเภทเครือข่ายไม่เปลี่ยนแปลง แอปที่กำหนดเป้าหมายเป็น Android 11 สามารถใช้แฟล็ก NET_CAPABILITY_TEMPORARILY_NOT_METERED ได้ ในอุปกรณ์ที่ใช้ Android 9 และต่ำกว่า ระบบปฏิบัติการจะไม่รายงานแฟล็ก สำหรับแอปที่ใช้ Android 10 แฟล็กนี้อาจพร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับอุปกรณ์ที่แอปทำงานอยู่
เมื่อทราบว่าเครือข่ายปัจจุบันไม่มีการวัดปริมาณอินเทอร์เน็ตชั่วคราวหรือถาวร คุณจะแสดงเนื้อหาที่มีความละเอียดสูงขึ้น (เช่น วิดีโอ 4k) อัปโหลดบันทึก สำรองข้อมูล และดาวน์โหลดเนื้อหาล่วงหน้าได้
ส่วนต่อไปนี้จะอธิบายขั้นตอนในการเพิ่มการตรวจสอบการจำกัดปริมาณการใช้งานลงในแอป
ลงทะเบียนการเรียกกลับของเครือข่าย
ลงทะเบียนการเรียกกลับของเครือข่ายโดยใช้
ConnectivityManager.registerDefaultNetworkCallback()
เพื่อรับการแจ้งเตือนเมื่อ NetworkCapabilities เปลี่ยนแปลง คุณตรวจหาการเปลี่ยนแปลง
NetworkCapabilitiesได้โดยการลบล้าง
onCapabilitiesChanged()
เมธอดใน NetworkCallback
registerDefaultNetworkCallback() จะทำให้การเรียกกลับที่ลงทะเบียนไว้ทริกเกอร์ทันทีเมื่อลงทะเบียน ซึ่งจะให้ข้อมูลเกี่ยวกับสถานะปัจจุบันแก่แอป การเรียกกลับในอนาคตมีความสำคัญเพื่อให้แอปดำเนินการที่เหมาะสมเมื่อสถานะเปลี่ยนจากไม่มีการวัดปริมาณอินเทอร์เน็ตเป็นแบบจำกัดปริมาณ หรือในทางกลับกัน
ตรวจสอบการจำกัดปริมาณการใช้งาน
ใช้ออบเจ็กต์ NetworkCapabilites ที่คุณได้รับในการเรียกกลับของเครือข่ายเพื่อตรวจสอบเอาต์พุตของโค้ดต่อไปนี้
Kotlin
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)
Java
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)
หากค่าเป็น "จริง" แสดงว่าคุณสามารถถือว่าเครือข่ายไม่จำกัดปริมาณการใช้งาน
ข้อควรพิจารณาเพิ่มเติม
เมื่อใช้ฟังก์ชันการทำงานนี้ โปรดคำนึงถึงสิ่งต่อไปนี้
การใช้แฟล็ก
NET_CAPABILITY_TEMPORARILY_NOT_METEREDกำหนดให้คุณต้องคอมไพล์แอปกับ Android 11 SDKความสามารถ
NET_CAPABILITY_NOT_METEREDเป็นความสามารถถาวรในเครือข่าย เครือข่ายที่มีความสามารถนี้จะตัดการเชื่อมต่อโดยอัตโนมัติหากสูญเสียความสามารถ (กลายเป็นจำกัดปริมาณการใช้งาน)ในทางกลับกัน
NET_CAPABILITY_TEMPORARILY_NOT_METEREDอาจเปลี่ยนแปลงในเครือข่าย โดยไม่ตัดการเชื่อมต่อ ดังนั้น แอปจึงต้องรอการเรียกกลับonCapabilitiesChanged()เพื่อจัดการเมื่อเครือข่ายกลับสู่สถานะจำกัดปริมาณการใช้งาน (สูญเสียความสามารถNET_CAPABILITY_TEMPORARILY_NOT_METERED)เครือข่ายไม่สามารถมีทั้ง
NET_CAPABILITY_NOT_METEREDและNET_CAPABILITY_TEMPORARILY_NOT_METEREDในเวลาเดียวกัน
การตรวจหา 5G
ตั้งแต่ Android 11 เป็นต้นไป คุณสามารถตรวจหาว่าอุปกรณ์เชื่อมต่อกับเครือข่าย 5G หรือไม่โดยใช้การเรียก API ที่อิงตามการเรียกกลับ คุณสามารถตรวจสอบได้ว่าการเชื่อมต่อเป็นเครือข่าย 5G NR (แบบสแตนด์อโลน) หรือ NSA (แบบนอนสแตนด์อโลน)
การเรียก API นี้อาจใช้เพื่อวัตถุประสงค์ต่อไปนี้
แสดงการสร้างแบรนด์ 5G ในแอปเพื่อเน้นว่าคุณกำลังนำเสนอประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใคร
เปิดใช้งานประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใครในแอปเมื่ออยู่ในเครือข่าย 5G เท่านั้น คุณ ควรจับคู่การตรวจสอบสถานะนี้กับ การตรวจสอบการจำกัดปริมาณการใช้งาน.
ติดตามการเชื่อมต่อ 5G เพื่อวัตถุประสงค์ในการวิเคราะห์
ตรวจหา 5G
เรียก
TelephonyManager.listen()โดยส่ง
LISTEN_DISPLAY_INFO_CHANGEDเพื่อดูว่าผู้ใช้มีการเชื่อมต่อเครือข่าย 5G หรือไม่ ลบล้างเมธอด
onDisplayInfoChanged()
เพื่อกำหนดประเภทเครือข่ายที่ใช้เพื่อวัตถุประสงค์ในการแสดง ข้อยกเว้นอย่างหนึ่งคือหากผู้ให้บริการเครือข่ายเลือกที่จะแสดง 5G เป็น RAT สำหรับเครือข่าย mmWave ระบบจะแสดง OVERRIDE_NETWORK_TYPE_NR_NSA
ตารางต่อไปนี้แสดงเครือข่ายที่สอดคล้องกับค่าต่างๆ
| ประเภทการแสดงผล | เครือข่าย |
|---|---|
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO |
Advanced pro LTE (5Ge) |
OVERRIDE_NETWORK_TYPE_NR_NSA |
NR (5G) สำหรับเครือข่าย 5G Sub-6 |
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE |
(5G+/5G UW) สำหรับเครือข่าย 5G mmWave |
การประมาณแบนด์วิดท์
การประมาณแบนด์วิดท์ใช้ออบเจ็กต์ NetworkCapabilities ที่คุณใช้เมื่อกำหนดการจำกัดปริมาณการใช้งาน คุณสามารถรับการประมาณแบนด์วิดท์โดยใช้ออบเจ็กต์ดังกล่าว
ความน่าเชื่อถือและความแม่นยำของเมธอดการประมาณแบนด์วิดท์
getLinkDownstreamBandwidthKbps()
และ
getLinkUpstreamBandwidthKbps()
จะดีขึ้นใน Android 11 เนื่องจากการอัปเกรดการรองรับเฟรมเวิร์กและการแก้ไขข้อบกพร่องของ
แพลตฟอร์ม/โมเด็มเพื่อรองรับ 5G
ค่าเริ่มต้นของแบนด์วิดท์จะให้คำแนะนำเกี่ยวกับการเริ่มต้นแอปเท่านั้น ซึ่งจะช่วยคุณในสถานการณ์ "การเริ่มต้นเมื่อไม่มีการใช้งาน" แอปควรวัดสิ่งที่เห็นเมื่อผู้ใช้เริ่มมีส่วนร่วมกับแอปและปรับลักษณะการทำงานในการสตรีมแบบไดนามิก ตัวอย่างเช่น คุณอาจเลือกความละเอียดของวิดีโอที่จะแสดงโดยอิงตามการประมาณแบนด์วิดท์เมื่อเริ่มต้น ตรวจสอบการประมาณอย่างต่อเนื่องเมื่อผู้ใช้ใช้แอป และปรับลักษณะการทำงานของแอปตามประเภทและความแรงของการเชื่อมต่อ