เพิ่มความสามารถ 5G ลงในแอป

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

แบนด์วิดท์เริ่มต้นมีไว้เพื่อเป็นแนวทางในการเริ่มต้นแอปเท่านั้น ซึ่งน่าจะช่วยคุณในกรณี "เริ่มต้นเมื่อไม่มีการใช้งาน" แอปควรวัดสิ่งที่เห็นเมื่อผู้ใช้เริ่มมีส่วนร่วมกับแอปและปรับลักษณะการสตรีมแบบไดนามิก เช่น คุณอาจเลือกความละเอียดของวิดีโอที่จะให้บริการตามการประเมินแบนด์วิดท์เมื่อเริ่มต้น ตรวจสอบค่าประมาณต่อไปขณะที่ผู้ใช้ใช้แอป เมื่อประเภทและคุณภาพการเชื่อมต่อของผู้ใช้เปลี่ยนแปลง ให้ปรับลักษณะการทํางานของแอปตามความเหมาะสม