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

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

ตรวจสอบการจำกัดปริมาณการใช้งาน

ใช้ออบเจ็กต์ 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 SDK

  • ความสามารถ 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

เรียก TelephonyManager.listen()โดยส่ง LISTEN_DISPLAY_INFO_CHANGEDเพื่อดูว่าผู้ใช้มีการเชื่อมต่อเครือข่าย 5G หรือไม่ ลบล้างเมธอด 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

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