Android 11 เพิ่มฟังก์ชันการทำงานเพื่อรองรับ 5G ในแอป หัวข้อนี้จะกล่าวถึงฟังก์ชันการทำงานและภาพรวมของการเพิ่มฟังก์ชันการทำงานเฉพาะ 5G ลงในแอปเพื่อปรับปรุงประสบการณ์ของผู้ใช้
สร้างขึ้นสำหรับ 5G
เมื่อตัดสินใจว่าจะมีส่วนร่วมกับ 5G อย่างไร ให้พิจารณาถึงประเภทประสบการณ์ที่คุณพยายามสร้างขึ้น 5G ช่วยปรับปรุงแอปของคุณได้หลายวิธี ดังนี้
- ปรับปรุงประสบการณ์ปัจจุบันให้เร็วขึ้นและดีขึ้นโดยอัตโนมัติด้วยความเร็วและเวลาในการตอบสนองที่ดีขึ้นของ 5G
- ยกระดับประสบการณ์ของผู้ใช้ เช่น แสดงวิดีโอ 4K หรือดาวน์โหลดชิ้นงานเกมที่มีความละเอียดสูงขึ้น
- หลังจากยืนยันว่าปริมาณการใช้อินเทอร์เน็ตที่เพิ่มขึ้นจะไม่เสียค่าใช้จ่ายสำหรับผู้ใช้แล้ว ให้รวมประสบการณ์การใช้งานที่ปกติแล้วจะมีให้ผ่าน Wi-Fi เท่านั้น เช่น การดาวน์โหลดเนื้อหาอย่างสม่ำเสมอซึ่งปกติแล้วสงวนไว้สำหรับ Wi-Fi ที่ไม่จำกัดปริมาณการใช้งาน
- มอบประสบการณ์การใช้งานที่เฉพาะเจาะจงสำหรับ 5G ซึ่งใช้ได้เฉพาะกับความเร็วสูงและเวลาในการตอบสนองต่ำ
ฟังก์ชันการทำงาน 5G
Android 11 มีการปรับปรุงและการเปลี่ยนแปลงฟังก์ชันการทำงานต่อไปนี้
ตรวจสอบการวัด
NET_CAPABILITY_TEMPORARILY_NOT_METERED
เป็นความสามารถที่เพิ่มเข้ามาใน Android 11 ซึ่งจะบอกคุณว่าเครือข่ายที่คุณใช้อยู่ไม่มีการจำกัดปริมาณอินเทอร์เน็ตหรือไม่ โดยอิงตามข้อมูลจากผู้ให้บริการเครือข่ายมือถือ
ระบบจะใช้ Flag ใหม่ควบคู่ไปกับ NET_CAPABILITY_NOT_METERED
แฟล็กที่มีอยู่จะระบุว่าเครือข่ายไม่มีการกำหนดปริมาณการใช้อินเทอร์เน็ตเสมอหรือไม่ และมีผลกับทั้งการเชื่อมต่อ Wi-Fi และเครือข่ายมือถือ
ความแตกต่างระหว่าง Flag 2 รายการนี้คือ NET_CAPABILITY_TEMPORARILY_NOT_METERED
อาจเปลี่ยนแปลงได้โดยไม่ต้องมีการเปลี่ยนแปลงประเภทเครือข่าย แอปที่กำหนดเป้าหมายเป็น Android 11 สามารถใช้ Flag NET_CAPABILITY_TEMPORARILY_NOT_METERED
ได้ ในอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า ระบบปฏิบัติการจะไม่รายงานเกี่ยวกับ Flag สําหรับแอปที่ทํางานบน Android 10 อาจมี Flag นี้ ทั้งนี้ขึ้นอยู่กับอุปกรณ์ที่ใช้งาน
เมื่อพิจารณาแล้วว่าเครือข่ายปัจจุบันไม่มีการจำกัดปริมาณการรับส่งข้อมูลชั่วคราวหรือถาวร คุณจะแสดงเนื้อหาที่มีความละเอียดสูงขึ้น (เช่น วิดีโอ 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)
หากค่าเป็น "จริง" คุณจะถือว่าเครือข่ายเป็นแบบไม่จำกัดปริมาณได้
ข้อควรพิจารณาเพิ่มเติม
โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อใช้ฟังก์ชันการทำงานนี้
การใช้ Flag
NET_CAPABILITY_TEMPORARILY_NOT_METERED
กำหนดให้คุณต้องคอมไพล์แอปกับ SDK ของ Android 11ความสามารถ
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 โดยไม่ต้องใช้อุปกรณ์ 5G คุณสามารถใช้ฟีเจอร์ที่เพิ่มลงในโปรแกรมจำลอง Android SDK
ตรวจหา 5G
Call
TelephonyManager.listen()
,
passing in
LISTEN_DISPLAY_INFO_CHANGED
,
to determine if the user has a 5G network connection. ลบล้างวิธี
onDisplayInfoChanged()
เพื่อกําหนดประเภทเครือข่ายที่ใช้เพื่อแสดงผล ข้อยกเว้นประการหนึ่งคือ หากผู้ให้บริการเลือกแสดง 5G เป็น RAT สำหรับเครือข่ายย่านความถี่สูง ระบบจะแสดง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
แบนด์วิดท์เริ่มต้นมีไว้เพื่อเป็นแนวทางในการเริ่มต้นแอปเท่านั้น ซึ่งน่าจะช่วยคุณในกรณี "เริ่มต้นเมื่อไม่มีการใช้งาน" แอปควรวัดสิ่งที่เห็นเมื่อผู้ใช้เริ่มมีส่วนร่วมกับแอปและปรับลักษณะการสตรีมแบบไดนามิก เช่น คุณอาจเลือกความละเอียดของวิดีโอที่จะให้บริการตามการประเมินแบนด์วิดท์เมื่อเริ่มต้น ตรวจสอบค่าประมาณต่อไปขณะที่ผู้ใช้ใช้แอป เมื่อประเภทและคุณภาพการเชื่อมต่อของผู้ใช้เปลี่ยนแปลง ให้ปรับลักษณะการทํางานของแอปตามความเหมาะสม