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

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

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