Triển khai gói dữ liệu

Android 9 cho phép nhà mạng cung cấp trực tiếp thông tin chi tiết về gói cước chính thức cho người dùng trong ứng dụng Cài đặt để giảm sự nhầm lẫn cho người dùng và hỗ trợ các cuộc gọi. Trên các thiết bị chạy Android 4.0 trở lên, người dùng có thể định cấu hình thủ công thông tin chi tiết về gói dữ liệu dành riêng cho nhà mạng trong ứng dụng Cài đặt, ví dụ: đặt cảnh báo và giới hạn để quản lý mức sử dụng dữ liệu.

Cấu hình của nhà mạng

Để định cấu hình gói dữ liệu, nhà mạng có thể thêm chức năng vào các ứng dụng Android hiện có bằng cách sử dụng SubscriptionPlan API. Các API này được thiết kế để hỗ trợ nhiều loại gói dữ liệu, bao gồm cả gói định kỳ và không định kỳ, cũng như các gói thay đổi theo thời gian.

Sau đây là ví dụ về cách định cấu hình một loại gói dữ liệu phổ biến được lặp lại hằng tháng:

SubscriptionManager sm =
    context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
    SubscriptionPlan.Builder.createRecurringMonthly(
            ZonedDateTime.parse("2016-12-03T10:00:00Z"))
        .setTitle("G-Mobile")
        .setDataLimit(4_000_000_000L,
            SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
        .setDataUsage(200_493_293L, dataUsageTimestamp)
        .build()));

Thiết bị chỉ cho phép ứng dụng định cấu hình gói dữ liệu trong một trong các điều kiện sau:

  • Thẻ SIM đã xác định rõ một ứng dụng có thể quản lý thẻ SIM đó, theo định nghĩa của SubscriptionManager.canManageSubscription().
  • Nhà mạng đã gửi giá trị KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING thông qua CarrierConfigManager để cho biết ứng dụng nào có thể quản lý gói dữ liệu của nhà mạng.
  • Thiết bị có một ứng dụng được tích hợp vào ảnh hệ thống có quyền MANAGE_SUBSCRIPTION_PLANS.

Hai điều kiện đầu tiên cho phép người dùng cài đặt ứng dụng của nhà mạng mà không yêu cầu ứng dụng đó phải được cài đặt sẵn vào hình ảnh hệ thống tại nhà máy. Hệ điều hành thực thi (và CDD yêu cầu) rằng tất cả thông tin chi tiết về gói dữ liệu đã định cấu hình đều được bảo vệ và chỉ được cung cấp cho ứng dụng của nhà mạng đã cung cấp thông tin chi tiết đó cho hệ điều hành.

Một thiết kế được đề xuất là để ứng dụng của nhà mạng sử dụng dịch vụ bảo trì ở chế độ chờ để cập nhật thông tin chi tiết về gói dữ liệu hằng ngày, nhưng các nhà mạng có thể sử dụng nhiều cơ chế, chẳng hạn như nhận thông tin chi tiết về gói dữ liệu thông qua tin nhắn SMS nội bộ của nhà mạng. Bạn nên triển khai các dịch vụ bảo trì ở trạng thái chờ bằng một tác vụ JobScheduler sử dụng setRequiresDeviceIdle()setRequiresCharging().

Mức sử dụng theo hệ điều hành

Hệ điều hành sử dụng thông tin chi tiết về gói dữ liệu do SubscriptionPlan API cung cấp theo những cách sau:

  • Thông tin chi tiết về gói được hiển thị thông qua ứng dụng Cài đặt để cho người dùng thấy mức sử dụng dữ liệu chính xác và cung cấp đường liên kết sâu trực tiếp đến ứng dụng của nhà mạng để có cơ hội nâng cấp/bán thêm.
  • Ngưỡng thông báo cảnh báo và giới hạn sử dụng dữ liệu được tự động định cấu hình dựa trên thông tin chi tiết về gói; cảnh báo được đặt ở mức 90% giới hạn.
  • Nếu nhà mạng tạm thời cho biết mạng đang "bị tắc nghẽn", hệ điều hành sẽ trì hoãn những công việc JobScheduler có thể được chuyển đổi thời gian, giảm tải cho mạng của nhà mạng.
  • Nếu nhà mạng tạm thời cho biết mạng là "không giới hạn", hệ điều hành có thể báo cáo kết nối di động là "không giới hạn" cho đến khi nhà mạng xoá chế độ ghi đè hoặc cho đến khi đạt đến giá trị thời gian chờ (nếu được cung cấp).
  • Bằng cách so sánh mức sử dụng dữ liệu hiện tại của người dùng với hạn mức dữ liệu tổng thể, hệ điều hành sẽ ước tính mức sử dụng dữ liệu thông thường của người dùng vào cuối chu kỳ thanh toán và phân bổ một cách thận trọng 10% dữ liệu dư thừa để cải thiện trải nghiệm người dùng, chẳng hạn như bằng cách cho phép các ứng dụng sử dụng dữ liệu đa đường dẫn.

Tuỳ chỉnh và xác thực

Ứng dụng Cài đặt của Android hiển thị tất cả thông tin chi tiết về gói dữ liệu do nhà mạng định cấu hình, đảm bảo người dùng thấy trạng thái chính xác nhất về mối quan hệ với nhà mạng và cung cấp cho người dùng một đường dẫn vào ứng dụng của nhà mạng để nâng cấp gói của họ. Các nhà sản xuất thiết bị chọn tuỳ chỉnh ứng dụng Cài đặt nên tiếp tục hiển thị những thông tin chi tiết này.

Các API SubscriptionManager được mô tả trên trang này được android.telephony.cts.SubscriptionManagerTest kiểm thử. Điều này đảm bảo rằng các ứng dụng của nhà mạng có thể định cấu hình thông tin chi tiết về gói dữ liệu và các thay đổi được truyền trong hệ điều hành.