อุปกรณ์ 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" ยืนยันว่ามีการเชื่อมต่อเครือข่ายที่จํากัดเพื่อให้ผู้ใช้เพิ่มเครดิตได้
- ตรวจสอบว่าการเติมเงินหรือเปิดใช้งานซิมอีกครั้งทำให้ปริมาณการใช้งานเครือข่ายมือถือกลับมาเป็นปกติ รวมถึงลิงก์ของผู้ให้บริการเครือข่ายมือถือและการแจ้งเตือนว่าไม่มียอดคงเหลือจะหายไป
- ทดสอบความถูกต้องหลังจากการกู้คืนบริการอินเทอร์เน็ต
แอปเริ่มต้นมีตัวอย่างการทดสอบหน่วยและสคริปต์สำหรับเรียกใช้การทดสอบ (ดู tests/runtest.sh
) เมื่อคุณใช้เวอร์ชันหรือลักษณะการทำงานที่กําหนดเอง คุณควรทำซ้ำการปรับแต่งเหล่านั้นในการทดสอบหน่วยเฉพาะ