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 และเครือข่ายมือถือ
ความแตกต่างระหว่าง 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
กำหนดให้คุณต้องคอมไพล์แอปกับ Android 11 SDKความสามารถ
NET_CAPABILITY_NOT_METERED
เป็นแบบถาวรในเครือข่าย เครือข่ายที่มีความสามารถนี้จะตัดการเชื่อมต่อโดยอัตโนมัติหากสูญเสียความสามารถดังกล่าว (กลายเป็นแบบมีจํากัด)ในทางตรงกันข้าม
NET_CAPABILITY_TEMPORARILY_NOT_METERED
อาจเปลี่ยนแปลงบนเครือข่าย โดยไม่ยกเลิกการเชื่อมต่อ ดังนั้นแอปจึงต้องฟัง Callback ของonCapabilitiesChanged()
เพื่อจัดการเมื่อเครือข่ายกลับสู่สถานะการวัดปริมาณอินเทอร์เน็ต (สูญเสียความสามารถของNET_CAPABILITY_TEMPORARILY_NOT_METERED
)เครือข่ายจะมีทั้ง
NET_CAPABILITY_NOT_METERED
และNET_CAPABILITY_TEMPORARILY_NOT_METERED
พร้อมกันไม่ได้
การตรวจจับ 5G
ตั้งแต่ Android 11 เป็นต้นไป คุณจะตรวจจับได้ว่าอุปกรณ์เชื่อมต่อกับเครือข่าย 5G หรือไม่โดยใช้การเรียก API ที่อิงตาม Callback คุณสามารถตรวจสอบว่าการเชื่อมต่อเป็นเครือข่าย 5G NR (สแตนด์อโลน) หรือ NSA (ไม่ใช่สแตนด์อโลน)
ตัวอย่างการใช้งานการเรียก API นี้ ได้แก่
การแสดงแบรนด์ 5G ในแอปเพื่อเน้นว่าคุณมอบประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใคร
เปิดใช้งานประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใครในแอปเมื่ออยู่ในเครือข่าย 5G เท่านั้น คุณควรจับคู่การตรวจสอบสถานะนี้กับการตรวจสอบการวัด
ติดตามการเชื่อมต่อ 5G เพื่อวัตถุประสงค์ด้านการวิเคราะห์
หากต้องการทดสอบการตรวจจับ 5G โดยไม่ใช้อุปกรณ์ 5G คุณสามารถใช้ฟีเจอร์ต่างๆ ที่เพิ่มลงในโปรแกรมจำลอง Android SDK ได้
ตรวจจับ 5G
โทร
TelephonyManager.listen()
ส่งผ่าน LISTEN_DISPLAY_INFO_CHANGED
เพื่อดูว่าผู้ใช้มีการเชื่อมต่อเครือข่าย 5G หรือไม่ ลบล้างวิธี
onDisplayInfoChanged()
เพื่อกําหนดประเภทเครือข่ายที่ใช้เพื่อแสดงผล ข้อยกเว้นประการหนึ่งคือ หากผู้ให้บริการเลือกแสดง 5G เป็น RAT สำหรับเครือข่ายย่านความถี่สูง ระบบจะแสดงOVERRIDE_NETWORK_TYPE_NR_NSA
ตารางต่อไปนี้แสดงเครือข่ายที่สอดคล้องกับค่าต่อไปนี้
ประเภทการคืนสินค้า | เครือข่าย |
---|---|
OVERRIDE_NETWORK_TYPE_LTE_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
แบนด์วิดท์เริ่มต้นมีไว้เพื่อเป็นแนวทางในการเริ่มต้นแอปเท่านั้น ซึ่งน่าจะช่วยคุณในกรณี "เริ่มต้นเมื่อไม่มีการใช้งาน" แอปควรวัดสิ่งที่เห็นเมื่อผู้ใช้เริ่มมีส่วนร่วมกับแอปและปรับลักษณะการสตรีมแบบไดนามิก ตัวอย่างเช่น คุณอาจเลือกความละเอียดของวิดีโอที่จะแสดง โดยอิงจากค่าประมาณแบนด์วิดท์เมื่อเริ่มต้นระบบ โปรดตรวจสอบค่าประมาณต่อไปเมื่อผู้ใช้ใช้แอป หากประเภทการเชื่อมต่อและความแรงมีการเปลี่ยนแปลง ให้ปรับลักษณะการทำงานของแอปให้สอดคล้องกัน