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

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

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

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