อุปกรณ์ Android ที่ไม่มีความสมดุลของข้อมูลช่วยให้สามารถรับส่งข้อมูลเครือข่ายได้ โดยกำหนดให้ผู้ให้บริการและผู้ให้บริการโทรคมนาคมต้องใช้โปรโตคอลบรรเทาผลกระทบ Android ใช้โซลูชันทั่วไปที่ช่วยให้ผู้ให้บริการและผู้ให้บริการโทรคมนาคมสามารถระบุเมื่ออุปกรณ์ไม่สมดุล
แพลตฟอร์ม Android มอบแอปผู้ให้บริการเริ่มต้นพร้อมลักษณะการทำงานเริ่มต้นสำหรับการบรรเทาการรับส่งข้อมูลโดยอิงตามสัญญาณการตรวจจับแคปทีฟพอร์ทัล นอกจากนี้ยังเปิดโอกาสให้ผู้ให้บริการขนส่งและ OEM ปรับแต่งพฤติกรรมด้วยต้นทุนที่ต่ำและความยืดหยุ่นสูง
ตัวอย่างและที่มา
แอปผู้ให้บริการเริ่มต้นจะอยู่ที่ platform/frameworks/base/packages/CarrierDefaultApp/ .
การนำไปปฏิบัติ
แอปผู้ให้บริการเริ่มต้นได้รับการกำหนดค่าเพื่อมอบประสบการณ์ที่ดีขึ้นสำหรับผู้ให้บริการที่ไม่ได้กำหนดค่าตั้งแต่แกะกล่อง ผู้ให้บริการสามารถใช้ลักษณะการทำงานเริ่มต้นนี้ได้ พวกเขายังสามารถลบล้างพฤติกรรมเริ่มต้นโดยการเพิ่มการแมปสัญญาณการดำเนินการให้กับไฟล์ XML config ของผู้ให้บริการ พวกเขาสามารถตัดสินใจว่าจะไม่ใช้แอปเริ่มต้น และใช้สิทธิ์ UICC กับแอปผู้ให้บริการแบบสแตนด์อโลนของตนเองแทน
การแนะนำการใช้งาน
สัญญาณ
กรอบงาน Android รองรับการกำหนดค่าการดำเนินการกับสัญญาณที่กำหนดพารามิเตอร์ต่อไปนี้:
-
TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
-
TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED
สัญญาณเหล่านี้อยู่ใน frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java
การดำเนินการที่รองรับ
แอปผู้ให้บริการเริ่มต้นจะกำหนดชุดการดำเนินการที่รองรับซึ่งสามารถแมปกับสัญญาณที่รองรับได้ สิ่งเหล่านี้ถูกกำหนดไว้ใน CarrierActionUtils.java
:
public static final int CARRIER_ACTION_ENABLE_METERED_APNS = 0; public static final int CARRIER_ACTION_DISABLE_METERED_APNS = 1; public static final int CARRIER_ACTION_DISABLE_RADIO = 2; public static final int CARRIER_ACTION_ENABLE_RADIO = 3; public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION = 4; public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5; public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS = 6;
หมายเหตุ: หากผู้ให้บริการขนส่งใช้แอปแบบสแตนด์อโลนของตนเอง ผู้ให้บริการก็สามารถใช้การรองรับสัญญาณอื่นนอกเหนือจากที่กล่าวถึงในส่วนนี้ได้ พวกเขาสามารถกำหนดและกำหนดค่าการกระทำของตนเองได้เช่นกัน
การแมปสัญญาณการดำเนินการเริ่มต้น
กำหนดค่าการดำเนินการเริ่มต้นโดยทำตามขั้นตอนนี้:
- กำหนดคีย์สำหรับสัญญาณที่รองรับ
การแม็ปสัญญาณสู่การดำเนินการดีฟอลต์ถูกกำหนดไว้ใน
CarrierConfigManager.java
สัญญาณที่รองรับแต่ละรายการจะมีคีย์:public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array"; public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY = "carrier_default_actions_on_dcfailure_string_array";
- เชื่อมโยงการดำเนินการเริ่มต้นกับคีย์สัญญาณ
รหัสการดำเนินการเริ่มต้นเชื่อมโยงกับคีย์สัญญาณ:
sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY, new String[]{ "1, 4" //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION //4: CARRIER_ACTION_DISABLE_METERED_APNS });
กรอบงานระบบโทรศัพท์จะแมปการดำเนินการเหล่านี้กับสัญญาณที่เกี่ยวข้อง
การเอาชนะการกระทำเริ่มต้น
คุณสามารถกำหนดการดำเนินการแบบกำหนดเองสำหรับสัญญาณที่รองรับในไฟล์ XML การกำหนดค่าของผู้ให้บริการโดยการเชื่อมโยงรหัสการดำเนินการกับคีย์สัญญาณ (กำหนดใน CarrierConfigManager.java
) ตัวอย่างเช่น การแมปต่อไปนี้จะปิดใช้งาน APN ที่คิดค่าบริการตามปริมาณข้อมูล และแสดงการแจ้งเตือนพอร์ทัลเกี่ยวกับการเปลี่ยนเส้นทาง:
<string-array name="carrier_default_actions_on_redirection_string_array" num="2"> <item value="1" /> <item value="4" /> </string-array>
กรอบงานระบบโทรศัพท์โหลดการกำหนดค่าเหล่านี้และแทนที่การดำเนินการเริ่มต้น
การตรวจสอบ
ไม่มีการทดสอบ CTS, CTS Verifier หรือ GTS สำหรับฟีเจอร์นี้
ใช้การทดสอบการตรวจสอบด้วยตนเองเหล่านี้เพื่อตรวจสอบคุณสมบัติ:
- ตรวจสอบการแจ้งเตือนสัญญาณไม่สมดุลของอุปกรณ์โทรคมนาคม
- ตรวจสอบการควบคุมปริมาณการเปลี่ยนเส้นทางการรับส่งข้อมูลระหว่างสถานะไม่สมดุลและปิด Wi-Fi
- ตรวจสอบว่าการรับส่งข้อมูลเครือข่ายถูกปิดใช้งานและ UI การแจ้งเตือนปรากฏขึ้นในระหว่างที่สถานะไม่สมดุล
- ตรวจสอบฟังก์ชันการโทรด้วยเสียง/VoLTE ในระหว่างสถานะไม่สมดุล
- ตรวจสอบว่าแฮงเอาท์วิดีโอถูกบล็อกในสถานะไม่สมดุล
- เมื่อเปิด Wi-Fi ตรวจสอบว่าผู้ใช้สามารถท่องเว็บต่อไปได้ และการรับส่งข้อมูลการสืบค้นจะไม่เปิดการรับส่งข้อมูลเครือข่ายในขณะที่อยู่ในสถานะไม่สมดุล
- ตรวจสอบฟังก์ชัน Wi-Fi, WFC และ Bluetooth ในระหว่างสถานะไม่สมดุล
- ปิด Wi-Fi ตรวจสอบ UI การแจ้งเตือนที่ไม่สมดุล และการรับส่งข้อมูลการเรียกดูตามปกติจะไม่ถูกเปลี่ยนเส้นทางไปยังเว็บไซต์ลงทะเบียน telco ตรวจสอบว่าการคลิกลิงก์ใน UI การแจ้งเตือนจะนำเบราว์เซอร์ไปยังเว็บไซต์ลงทะเบียนโทรคมนาคม
- ตรวจสอบว่าการสลับโหมดเครื่องบินไม่ได้รีเซ็ตสถานะการควบคุมปริมาณการจราจร
- ตรวจสอบว่าการสลับซิมที่ให้บริการจะรีเซ็ตสถานะการรับส่งข้อมูลเครือข่าย
- ตรวจสอบว่าการใส่ซิมที่ไม่สมดุลอีกครั้งจะรีสตาร์ทการเปลี่ยนเส้นทางการรับส่งข้อมูลและรับปริมาณการรับส่งข้อมูลเครือข่ายอีกครั้ง
- ตรวจสอบว่าการรีบูตโทรศัพท์จะเปิดใช้งานการเปลี่ยนเส้นทางอีกครั้ง และนำเค้นการรับส่งข้อมูลและ UI การแจ้งเตือนกลับมา
- แตะที่การแจ้งเตือน "captiveportal" ตรวจสอบว่ามีการสร้างการเชื่อมต่อเครือข่ายแบบจำกัดเพื่อให้ผู้ใช้สามารถเพิ่มเครดิตได้
- ตรวจสอบว่าการเติมหรือเปิดใช้งานยอดคงเหลือ SIM ทำให้การรับส่งข้อมูลเครือข่ายเซลลูลาร์ฟื้นตัว และลิงก์ Telco และการแจ้งเตือนไม่มียอดคงเหลือหายไป
- การทดสอบความสมบูรณ์หลังจากการกู้คืนบริการข้อมูล
แอปเริ่มต้นมีตัวอย่างบางส่วนของการทดสอบหน่วยและสคริปต์เพื่อเรียกใช้ (ดู tests/runtest.sh
) เมื่อคุณใช้เวอร์ชันหรือลักษณะการทำงานที่กำหนดเอง คุณควรจำลองการปรับแต่งเหล่านั้นเป็นการทดสอบหน่วยเฉพาะ