การปรับแต่งพฤติกรรมของอุปกรณ์สำหรับผู้ใช้ที่ไม่สมดุล

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

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

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

กำหนดค่าการดำเนินการเริ่มต้นโดยทำตามขั้นตอนนี้:

  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 และ Bluetooth ในระหว่างสถานะไม่สมดุล
  8. ปิด Wi-Fi ตรวจสอบ UI การแจ้งเตือนที่ไม่สมดุล และการรับส่งข้อมูลการเรียกดูตามปกติจะไม่ถูกเปลี่ยนเส้นทางไปยังเว็บไซต์ลงทะเบียน telco ตรวจสอบว่าการคลิกลิงก์ใน UI การแจ้งเตือนจะนำเบราว์เซอร์ไปยังเว็บไซต์ลงทะเบียนโทรคมนาคม
  9. ตรวจสอบว่าการสลับโหมดเครื่องบินไม่ได้รีเซ็ตสถานะการควบคุมปริมาณการจราจร
  10. ตรวจสอบว่าการสลับซิมที่ให้บริการจะรีเซ็ตสถานะการรับส่งข้อมูลเครือข่าย
  11. ตรวจสอบว่าการใส่ซิมที่ไม่สมดุลอีกครั้งจะรีสตาร์ทการเปลี่ยนเส้นทางการรับส่งข้อมูลและรับปริมาณการรับส่งข้อมูลเครือข่ายอีกครั้ง
  12. ตรวจสอบว่าการรีบูตโทรศัพท์จะเปิดใช้งานการเปลี่ยนเส้นทางอีกครั้ง และนำเค้นการรับส่งข้อมูลและ UI การแจ้งเตือนกลับมา
  13. แตะที่การแจ้งเตือน "captiveportal" ตรวจสอบว่ามีการสร้างการเชื่อมต่อเครือข่ายแบบจำกัดเพื่อให้ผู้ใช้สามารถเพิ่มเครดิตได้
  14. ตรวจสอบว่าการเติมหรือเปิดใช้งานยอดคงเหลือ SIM ทำให้การรับส่งข้อมูลเครือข่ายเซลลูลาร์ฟื้นตัว และลิงก์ Telco และการแจ้งเตือนไม่มียอดคงเหลือหายไป
  15. การทดสอบความสมบูรณ์หลังจากการกู้คืนบริการข้อมูล

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