เพิ่มความสามารถ 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 และเครือข่ายมือถือ

ความแตกต่างระหว่าง 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 กำหนดให้คุณต้องคอมไพล์แอปกับ Android 11 SDK

  • ความสามารถ NET_CAPABILITY_NOT_METERED เป็นแบบถาวรในเครือข่าย เครือข่ายที่มีความสามารถนี้จะตัดการเชื่อมต่อโดยอัตโนมัติหากสูญเสียความสามารถดังกล่าว (กลายเป็นแบบมีจํากัด)

  • ในทางตรงกันข้าม NET_CAPABILITY_TEMPORARILY_NOT_METERED อาจเปลี่ยนแปลงบนเครือข่าย โดยไม่ยกเลิกการเชื่อมต่อ ดังนั้นแอปจึงต้องฟัง Callback ของ onCapabilitiesChanged() เพื่อจัดการเมื่อเครือข่ายกลับสู่สถานะการวัดปริมาณอินเทอร์เน็ต (สูญเสียความสามารถของ NET_CAPABILITY_TEMPORARILY_NOT_METERED)

  • เครือข่ายจะมีทั้ง NET_CAPABILITY_NOT_METERED และ NET_CAPABILITY_TEMPORARILY_NOT_METERED พร้อมกันไม่ได้

การตรวจจับ 5G

ตั้งแต่ Android 11 เป็นต้นไป คุณจะตรวจจับได้ว่าอุปกรณ์เชื่อมต่อกับเครือข่าย 5G หรือไม่โดยใช้การเรียก API ที่อิงตาม Callback คุณสามารถตรวจสอบว่าการเชื่อมต่อเป็นเครือข่าย 5G NR (สแตนด์อโลน) หรือ NSA (ไม่ใช่สแตนด์อโลน)

ตัวอย่างการใช้งานการเรียก API นี้ ได้แก่

  • การแสดงแบรนด์ 5G ในแอปเพื่อเน้นว่าคุณมอบประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใคร

  • เปิดใช้งานประสบการณ์การใช้งาน 5G ที่ไม่เหมือนใครในแอปเมื่ออยู่ในเครือข่าย 5G เท่านั้น คุณควรจับคู่การตรวจสอบสถานะนี้กับการตรวจสอบการวัด

  • ติดตามการเชื่อมต่อ 5G เพื่อวัตถุประสงค์ด้านการวิเคราะห์

หากต้องการทดสอบการตรวจจับ 5G โดยไม่ใช้อุปกรณ์ 5G คุณสามารถใช้ฟีเจอร์ต่างๆ ที่เพิ่มลงในโปรแกรมจำลอง Android SDK ได้

ตรวจจับ 5G

โทร TelephonyManager.listen() ส่งผ่าน LISTEN_DISPLAY_INFO_CHANGED เพื่อดูว่าผู้ใช้มีการเชื่อมต่อเครือข่าย 5G หรือไม่ ลบล้างวิธี onDisplayInfoChanged() เพื่อกําหนดประเภทเครือข่ายที่ใช้เพื่อแสดงผล ข้อยกเว้นประการหนึ่งคือ หากผู้ให้บริการเลือกแสดง 5G เป็น RAT สำหรับเครือข่ายย่านความถี่สูง ระบบจะแสดงOVERRIDE_NETWORK_TYPE_NR_NSA

ตารางต่อไปนี้แสดงเครือข่ายที่สอดคล้องกับค่าต่อไปนี้

ประเภทการคืนสินค้า เครือข่าย
OVERRIDE_NETWORK_TYPE_LTE_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

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