ปรับแต่งลักษณะการทำงานของอุปกรณ์สำหรับผู้ใช้ที่มียอดคงเหลือไม่สมดุล

อุปกรณ์ 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;

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

การแมปสัญญาณกับการดำเนินการเริ่มต้น

กำหนดค่าการทำงานเริ่มต้นโดยทำตามกระบวนการต่อไปนี้

  1. กำหนดคีย์สำหรับสัญญาณที่รองรับ

    การแมปสัญญาณกับการกระทำเริ่มต้นกำหนดไว้ใน 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";
  2. เชื่อมโยงการดำเนินการเริ่มต้นกับคีย์สัญญาณ

    รหัสการดำเนินการเริ่มต้นจะเชื่อมโยงกับคีย์สัญญาณดังนี้

    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 สำหรับฟีเจอร์นี้

ใช้การทดสอบการตรวจสอบด้วยตนเองต่อไปนี้เพื่อตรวจสอบฟีเจอร์

  1. ตรวจสอบการแจ้งเตือนสัญญาณอุปกรณ์ที่มียอดค้างชำระของบริษัทโทรคมนาคม
  2. ยืนยันการจำกัดการเปลี่ยนเส้นทางการรับส่งข้อมูลในระหว่างที่ยอดเงินไม่เพียงพอและปิด Wi-Fi
  3. ตรวจสอบว่าการรับส่งข้อมูลเครือข่ายลดลงและ UI การแจ้งเตือนปรากฏขึ้นในระหว่างที่มียอดคงเหลือน้อย
  4. ตรวจสอบฟังก์ชันการโทรด้วยเสียง/VoLTE ในระหว่างที่ยอดเงินไม่เพียงพอ
  5. ยืนยันว่าระบบบล็อกการโทรผ่านวิดีโอเมื่อยอดเงินไม่เพียงพอ
  6. เมื่อเปิด Wi-Fi ให้ตรวจสอบว่าผู้ใช้ยังคงท่องเว็บได้ และการท่องเว็บ จะไม่เปลี่ยนเป็นการรับส่งข้อมูลเครือข่ายขณะที่อยู่ในสถานะยอดเงินไม่เพียงพอ
  7. ตรวจสอบฟังก์ชัน Wi-Fi, WFC และบลูทูธในระหว่างสถานะที่ยอดเงินไม่เพียงพอ
  8. ปิด Wi-Fi ตรวจสอบ UI การแจ้งเตือนยอดเงินไม่เพียงพอ และตรวจสอบว่าการเข้าชมการท่องเว็บปกติไม่ได้เปลี่ยนเส้นทางไปยังเว็บไซต์การลงทะเบียนของบริษัทโทรคมนาคม ยืนยัน การคลิกลิงก์ใน UI การแจ้งเตือนจะนำเบราว์เซอร์ไปยังเว็บไซต์การลงทะเบียนของบริษัทโทรคมนาคม
  9. ตรวจสอบว่าการเปิด/ปิดโหมดบนเครื่องบินไม่ได้รีเซ็ตสถานะการควบคุมปริมาณการรับส่ง
  10. ตรวจสอบว่าการสลับซิมที่ใช้งานอยู่จะรีเซ็ตสถานะการรับส่งข้อมูลเครือข่าย
  11. ตรวจสอบว่าการใส่ซิมที่มียอดเงินไม่เพียงพออีกครั้งจะรีสตาร์ทการเปลี่ยนเส้นทางการรับส่งข้อมูล และทำให้ระบบจำกัดการรับส่งข้อมูลในเครือข่ายอีกครั้ง
  12. ตรวจสอบว่าการรีบูตโทรศัพท์จะเปิดใช้งานการเปลี่ยนเส้นทางอีกครั้งและนำ การควบคุมปริมาณการเข้าชมและ UI การแจ้งเตือนกลับมา
  13. แตะการแจ้งเตือน "captiveportal" ตรวจสอบว่ามีการเชื่อมต่อเครือข่ายที่ถูกจำกัด เพื่อให้ผู้ใช้เพิ่มเครดิตได้
  14. ตรวจสอบว่าการเติมเงินหรือการเปิดใช้งานซิมอีกครั้งทำให้การรับส่งข้อมูลในเครือข่ายมือถือกลับมาทำงานได้ และลิงก์ของ Telco กับการแจ้งเตือนว่าไม่มีเงินคงเหลือหายไป
  15. การทดสอบความสมเหตุสมผลหลังจากกู้คืนบริการข้อมูล

แอปเริ่มต้นมีตัวอย่างการทดสอบหน่วยและสคริปต์เพื่อเรียกใช้การทดสอบเหล่านั้น (ดู tests/runtest.sh) เมื่อใช้เวอร์ชันหรือลักษณะการทำงานที่ปรับแต่งแล้ว คุณควรจำลองการปรับแต่งเหล่านั้นในการทดสอบหน่วยเฉพาะ