Tùy chỉnh hành vi của thiết bị cho người dùng mất cân bằng

Các thiết bị Android không có sự cân bằng dữ liệu sẽ cho phép lưu lượng truy cập mạng đi qua, yêu cầu các nhà mạng và công ty viễn thông triển khai các giao thức giảm thiểu. Android triển khai một giải pháp chung cho phép các nhà cung cấp dịch vụ và công ty viễn thông cho biết khi nào thiết bị hết số dư.

Nền tảng Android cung cấp cho ứng dụng của nhà cung cấp dịch vụ mặc định một hành vi mặc định để giảm thiểu lưu lượng truy cập dựa trên tín hiệu phát hiện cổng cố định. Nó cũng cung cấp cho các nhà cung cấp dịch vụ và OEM cơ hội tùy chỉnh hành vi với chi phí thấp và tính linh hoạt cao.

Ví dụ và nguồn

Ứng dụng nhà cung cấp dịch vụ mặc định được đặt tại platform/frameworks/base/packages/CarrierDefaultApp/ .

Thực hiện

Ứng dụng nhà cung cấp dịch vụ mặc định được định cấu hình để cung cấp trải nghiệm tốt hơn cho các nhà cung cấp dịch vụ chưa được định cấu hình ngay từ đầu. Các nhà cung cấp dịch vụ có thể sử dụng hành vi mặc định này. Họ cũng có thể ghi đè hành vi mặc định bằng cách thêm ánh xạ hành động tín hiệu vào tệp XML cấu hình sóng mang. Họ có thể quyết định không sử dụng ứng dụng mặc định và thay vào đó sử dụng các đặc quyền UICC với ứng dụng độc lập của nhà mạng của họ.

Giới thiệu thực hiện

Tín hiệu

Khung Android hỗ trợ định cấu hình hành động theo các tín hiệu được tham số hóa sau:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Các tín hiệu này được đặt trong frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Hành động được hỗ trợ

Ứng dụng của nhà cung cấp dịch vụ mặc định xác định một tập hợp các hành động được hỗ trợ có thể được ánh xạ tới các tín hiệu được hỗ trợ. Chúng được định nghĩa trong 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;

Lưu ý: Nếu nhà cung cấp dịch vụ triển khai ứng dụng độc lập của riêng họ thì họ có thể triển khai hỗ trợ cho các tín hiệu khác với những tín hiệu được đề cập trong phần này. Họ cũng có thể xác định và định cấu hình hành động của riêng mình.

Ánh xạ hành động tín hiệu mặc định

Định cấu hình các hành động mặc định bằng cách làm theo quy trình này:

  1. Xác định khóa cho các tín hiệu được hỗ trợ.

    Ánh xạ tín hiệu mặc định tới hành động được xác định trong CarrierConfigManager.java . Mỗi tín hiệu được hỗ trợ đều có một khóa:

    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. Liên kết các hành động mặc định với các phím tín hiệu.

    Id hành động mặc định được liên kết với các phím tín hiệu:

    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
             });
    

    Khung điện thoại ánh xạ các hành động này tới các tín hiệu tương ứng.

Ghi đè các hành động mặc định

Bạn có thể xác định hành động tùy chỉnh cho các tín hiệu được hỗ trợ trong tệp XML cấu hình sóng mang bằng cách liên kết ID hành động với các khóa tín hiệu (được xác định trong CarrierConfigManager.java ). Ví dụ: ánh xạ sau đây sẽ tắt APN được đo lượng dữ liệu và hiển thị thông báo cổng thông tin về chuyển hướng:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

Khung điện thoại tải các cấu hình này và ghi đè các hành động mặc định.

Thẩm định

Không có bài kiểm tra CTS, CTS Verifier hoặc GTS nào cho tính năng này.

Sử dụng các thử nghiệm xác thực thủ công này để xác thực tính năng:

  1. Xác thực thông báo tín hiệu mất cân bằng thiết bị của telco.
  2. Xác minh điều tiết chuyển hướng lưu lượng truy cập trong trạng thái mất cân bằng và tắt Wi-Fi.
  3. Xác minh lưu lượng truy cập mạng bị tắt và giao diện người dùng thông báo xuất hiện trong trạng thái mất cân bằng.
  4. Xác thực chức năng cuộc gọi thoại/VoLTE trong trạng thái mất cân bằng.
  5. Xác minh cuộc gọi video bị chặn ở trạng thái mất cân bằng.
  6. Khi bật Wi-Fi, hãy xác minh người dùng có thể tiếp tục duyệt web và lưu lượng duyệt không bật lưu lượng mạng khi ở trạng thái mất cân bằng.
  7. Xác thực các chức năng Wi-Fi, WFC và Bluetooth trong trạng thái mất cân bằng.
  8. Tắt Wi-Fi. Xác minh giao diện người dùng thông báo mất cân bằng và lưu lượng truy cập duyệt thông thường không được chuyển hướng đến trang web đăng ký telco. Xác minh việc nhấp vào liên kết trong giao diện người dùng thông báo sẽ đưa trình duyệt đến trang web đăng ký dịch vụ viễn thông.
  9. Xác minh rằng việc chuyển đổi chế độ trên máy bay không đặt lại trạng thái điều tiết lưu lượng.
  10. Xác minh rằng việc hoán đổi SIM đang hoạt động sẽ đặt lại trạng thái lưu lượng truy cập mạng.
  11. Xác minh rằng việc lắp lại SIM mất cân bằng sẽ khởi động lại quá trình chuyển hướng lưu lượng truy cập và điều chỉnh lại lưu lượng truy cập mạng.
  12. Xác minh rằng việc khởi động lại điện thoại sẽ kích hoạt lại tính năng chuyển hướng và mang lại giao diện người dùng thông báo và điều tiết lưu lượng truy cập.
  13. Nhấn vào thông báo "captiveportal". Xác minh kết nối mạng bị hạn chế được thiết lập để cho phép người dùng thêm tín dụng.
  14. Xác minh rằng việc nạp lại hoặc kích hoạt lại số dư SIM có khiến lưu lượng truy cập mạng di động phục hồi và liên kết Telco cũng như không có thông báo số dư nào biến mất.
  15. Kiểm tra độ tỉnh táo sau khi phục hồi dịch vụ dữ liệu.

Ứng dụng mặc định cung cấp một số ví dụ về kiểm thử đơn vị và tập lệnh để chạy chúng (xem tests/runtest.sh ). Khi triển khai một phiên bản hoặc hành vi tùy chỉnh, bạn nên phản chiếu những tùy chỉnh đó vào các bài kiểm tra đơn vị chuyên dụng.