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