อุปกรณ์ Android ที่ไม่มีแพ็กเกจอินเทอร์เน็ตจะอนุญาตให้การรับส่งข้อมูลในเครือข่ายผ่านได้ ซึ่งกำหนดให้ผู้ให้บริการเครือข่ายและผู้ให้บริการโทรคมนาคมต้องใช้โปรโตคอลการลดผลกระทบ Android มี โซลูชันทั่วไปที่ช่วยให้ผู้ให้บริการและบริษัทโทรคมนาคมระบุได้เมื่ออุปกรณ์ มียอดเงินคงเหลือไม่เพียงพอ
แพลตฟอร์ม Android มีแอปผู้ให้บริการเริ่มต้นที่มีลักษณะการทำงานเริ่มต้นสำหรับการลดทราฟิกตามสัญญาณการตรวจหาแคพทีฟพอร์ทัล นอกจากนี้ ยังเปิดโอกาสให้ ผู้ให้บริการและ OEM ปรับแต่งลักษณะการทำงานได้โดยมีต้นทุนต่ำและ มีความยืดหยุ่นสูง
ตัวอย่างและแหล่งที่มา
แอปของผู้ให้บริการเริ่มต้นจะอยู่ที่platform/frameworks/base/packages/CarrierDefaultApp/.
การใช้งาน
แอปของผู้ให้บริการเริ่มต้นได้รับการกำหนดค่าให้มอบประสบการณ์การใช้งานที่ดีขึ้นสำหรับ ผู้ให้บริการที่ไม่ได้กำหนดค่าตั้งแต่แกะกล่อง ผู้ให้บริการสามารถใช้ลักษณะการทำงานเริ่มต้นนี้ได้ นอกจากนี้ ยังลบล้างลักษณะการทำงานเริ่มต้นได้โดยเพิ่มการแมปสัญญาณกับการดำเนินการลงใน ไฟล์ XML ของการกำหนดค่าของผู้ให้บริการ โดยผู้ใช้สามารถเลือกที่จะไม่ใช้แอปเริ่มต้นและ ใช้สิทธิ์ 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 และบลูทูธในระหว่างสถานะที่ยอดเงินไม่เพียงพอ
- ปิด Wi-Fi ตรวจสอบ UI การแจ้งเตือนยอดเงินไม่เพียงพอ และตรวจสอบว่าการเข้าชมการท่องเว็บปกติไม่ได้เปลี่ยนเส้นทางไปยังเว็บไซต์การลงทะเบียนของบริษัทโทรคมนาคม ยืนยัน การคลิกลิงก์ใน UI การแจ้งเตือนจะนำเบราว์เซอร์ไปยังเว็บไซต์การลงทะเบียนของบริษัทโทรคมนาคม
- ตรวจสอบว่าการเปิด/ปิดโหมดบนเครื่องบินไม่ได้รีเซ็ตสถานะการควบคุมปริมาณการรับส่ง
- ตรวจสอบว่าการสลับซิมที่ใช้งานอยู่จะรีเซ็ตสถานะการรับส่งข้อมูลเครือข่าย
- ตรวจสอบว่าการใส่ซิมที่มียอดเงินไม่เพียงพออีกครั้งจะรีสตาร์ทการเปลี่ยนเส้นทางการรับส่งข้อมูล และทำให้ระบบจำกัดการรับส่งข้อมูลในเครือข่ายอีกครั้ง
- ตรวจสอบว่าการรีบูตโทรศัพท์จะเปิดใช้งานการเปลี่ยนเส้นทางอีกครั้งและนำ การควบคุมปริมาณการเข้าชมและ UI การแจ้งเตือนกลับมา
- แตะการแจ้งเตือน "captiveportal" ตรวจสอบว่ามีการเชื่อมต่อเครือข่ายที่ถูกจำกัด เพื่อให้ผู้ใช้เพิ่มเครดิตได้
- ตรวจสอบว่าการเติมเงินหรือการเปิดใช้งานซิมอีกครั้งทำให้การรับส่งข้อมูลในเครือข่ายมือถือกลับมาทำงานได้ และลิงก์ของ Telco กับการแจ้งเตือนว่าไม่มีเงินคงเหลือหายไป
- การทดสอบความสมเหตุสมผลหลังจากกู้คืนบริการข้อมูล
แอปเริ่มต้นมีตัวอย่างการทดสอบหน่วยและสคริปต์เพื่อเรียกใช้การทดสอบเหล่านั้น (ดู tests/runtest.sh
) เมื่อใช้เวอร์ชันหรือลักษณะการทำงานที่ปรับแต่งแล้ว คุณควรจำลองการปรับแต่งเหล่านั้นในการทดสอบหน่วยเฉพาะ