เพิ่มความสามารถ 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() ทำให้ทริกเกอร์ 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 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

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

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