Triển khai kế hoạch dữ liệu

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

Cấu hình theo nhà mạng

Để định cấu hình gói dữ liệu, nhà cung cấp dịch vụ có thể thêm chức năng vào ứng dụng Android hiện có của họ bằng cách sử dụng API SubscriptionPlan . Các API đượ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.

Dưới đây là ví dụ về cách định cấu hình loại gói dữ liệu phổ biến 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 theo một trong các điều kiện sau:

  • Thẻ SIM đã xác định rõ ràng một ứng dụng có thể quản lý thẻ đó, như được xác định bởi SubscriptionManager.canManageSubscription() .
  • Nhà cung cấp dịch vụ đã đẩy giá trị KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING qua CarrierConfigManager để cho biết ứng dụng nào có thể quản lý gói dữ liệu của nhà cung cấp dịch vụ.
  • Thiết bị có một ứng dụng được tích hợp trong hình ả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 phải cài đặt sẵn ứng dụng này 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ả các chi tiết gói dữ liệu đã định cấu hình đều phải được bảo vệ và chỉ được cung cấp cho ứng dụng của nhà cung cấp dịch vụ đã cung cấp thông tin chi tiết ban đầu cho Hệ điều hành.

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

Cách sử dụng của hệ điều hành

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

  • Chi tiết về gói được hiển thị thông qua ứng dụng Cài đặt để hiển thị mức sử dụng dữ liệu chính xác cho người dùng và cung cấp các liên kết sâu trực tiếp đến ứng dụng của nhà cung cấp dịch vụ để có cơ hội nâng cấp/bán thêm.
  • Ngưỡng thông báo giới hạn và cảnh báo sử dụng dữ liệu được cấu hình tự động dựa trên chi tiết gói; cảnh báo được đặt ở mức 90% giới hạn.
  • Nếu nhà cung cấp dịch vụ tạm thời cho biết mạng bị "tắc nghẽn" thì hệ điều hành sẽ trì hoãn các công việc của JobScheduler có thể bị dịch chuyển theo thời gian, giảm tải cho mạng của nhà cung cấp dịch vụ.
  • Nếu nhà cung cấp dịch vụ tạm thời cho biết mạng là "không được đáp ứng" thì hệ điều hành có thể báo cáo kết nối di động là "không được đáp ứng" cho đến khi nhà cung cấp dịch vụ xóa ghi đè hoặc cho đến khi đạt đến giá trị hết 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 giới hạn dữ liệu tổng thể, HĐH ướ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ổ 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.

Tùy chỉnh và xác nhận

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

Các API SubscriptionManager được mô tả ở trên được kiểm tra bởi android.telephony.cts.SubscriptionManagerTest , đảm bảo rằng các chi tiết gói dữ liệu có thể được định cấu hình bởi các ứng dụng của nhà cung cấp dịch vụ và những thay đổi đó sẽ được phổ biến trong hệ điều hành.