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() ทำให้ทริกเกอร์ Callback ที่ลงทะเบียนทันทีเมื่อลงทะเบียน ซึ่งจะให้ข้อมูลเกี่ยวกับสถานะปัจจุบันแก่แอป Callback ในอนาคตมีความสําคัญอย่างยิ่งต่อการที่แอปจะดําเนินการที่เหมาะสมเมื่อสถานะเปลี่ยนจากไม่มีการวัดปริมาณอินเทอร์เน็ตเป็นแบบจำกัดปริมาณ หรือในทางกลับกัน
ตรวจสอบการใช้งานแบบคิดตามปริมาณการใช้งาน
ใช้ออบเจ็กต์ 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 SDKNET_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 สำหรับเครือข่าย 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
ค่าเริ่มต้นของแบนด์วิดท์จะให้คำแนะนำเกี่ยวกับการเริ่มต้นแอปเท่านั้น ซึ่งจะช่วยคุณในกรณีที่ "การเริ่มต้นเมื่อไม่มีการใช้งาน" แอปควรวัดสิ่งที่เห็น เมื่อผู้ใช้เริ่มมีส่วนร่วมกับแอป และปรับพฤติกรรมการสตรีม แบบไดนามิก เช่น คุณอาจเลือกความละเอียดของวิดีโอที่จะแสดงตามการประมาณแบนด์วิดท์เมื่อเริ่มต้น ตรวจสอบค่าประมาณต่อไปเมื่อผู้ใช้ใช้แอป เนื่องจากประเภทและความแรงของการเชื่อมต่อของผู้ใช้เปลี่ยนแปลงไป ให้ปรับพฤติกรรมของแอปตามนั้น