Wdrożenie planów danych

Android 9 umożliwia operatorom bezpośrednie przekazywanie użytkownikom wiarygodnych informacji o abonamencie w aplikacji Ustawienia, aby zmniejszyć zamieszanie i ułatwić obsługę połączeń. Na urządzeniach z Androidem 4.0 i nowszym użytkownicy mogą ręcznie konfigurować szczegóły planu transmisji danych operatora w aplikacji Ustawienia, np. ustawiać ostrzeżenia i limity, aby zarządzać wykorzystaniem danych.

Konfiguracja według operatora

Aby skonfigurować pakiety danych, operatorzy mogą dodać funkcje do istniejących aplikacji na Androida za pomocą SubscriptionPlaninterfejsów API. Interfejsy API zostały zaprojektowane tak, aby obsługiwać szeroką gamę typów pakietów danych, w tym pakiety cykliczne i niecykliczne oraz pakiety, które zmieniają się z upływem czasu.

Oto przykład konfiguracji typowego abonamentu na dane, który odnawia się co miesiąc:

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

Urządzenie pozwala aplikacji konfigurować pakiety danych tylko w jednym z tych przypadków:

  • Karta SIM ma wyraźnie zdefiniowaną aplikację, która może nią zarządzać, zgodnie z opisem w SubscriptionManager.canManageSubscription().
  • Operator przesłał wartość KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING za pomocą CarrierConfigManager, aby wskazać, która aplikacja może zarządzać pakietami danych operatora.
  • Urządzenie ma wbudowaną w obraz systemu aplikację z uprawnieniem MANAGE_SUBSCRIPTION_PLANS.

Pierwsze 2 warunki umożliwiają użytkownikowi zainstalowanie aplikacji operatora bez konieczności wstępnego zainstalowania jej w obrazie systemu w fabryce. System operacyjny wymusza (a dokument CDD wymaga), aby wszystkie skonfigurowane szczegóły pakietu danych były chronione i udostępniane tylko aplikacji operatora, która pierwotnie przekazała te szczegóły do systemu operacyjnego.

Jednym z sugerowanych rozwiązań jest używanie przez aplikację operatora usługi konserwacji w stanie bezczynności do codziennego aktualizowania szczegółów pakietu danych. Operatorzy mogą jednak korzystać z wielu różnych mechanizmów, np. otrzymywać szczegóły pakietu danych za pomocą wewnętrznych wiadomości SMS. Usługi konserwacji w stanie bezczynności najlepiej wdrażać za pomocą zadania JobScheduler, które korzysta z setRequiresDeviceIdle()setRequiresCharging().

Wykorzystanie według systemu operacyjnego

System operacyjny wykorzystuje szczegóły planu transmisji danych podane przez interfejsy SubscriptionPlan API w następujący sposób:

  • Szczegóły planu są wyświetlane w aplikacji Ustawienia, aby użytkownicy mogli zobaczyć dokładne dane o wykorzystaniu danych i bezpośrednie precyzyjne linki do aplikacji operatora, które umożliwiają przejście na wyższy lub niższy pakiet.
  • Progi ostrzeżenia o wykorzystaniu danych i powiadomienia o limicie są konfigurowane automatycznie na podstawie szczegółów abonamentu. Ostrzeżenie jest ustawione na 90% limitu.
  • Jeśli operator tymczasowo wskaże, że sieć jest „przeciążona”, system operacyjny opóźni zadania JobScheduler, które można przesunąć w czasie, zmniejszając obciążenie sieci operatora.
  • Jeśli operator tymczasowo wskaże, że sieć jest „nieograniczona”, system operacyjny może zgłaszać połączenie komórkowe jako „nieograniczone”, dopóki operator nie usunie zastąpienia lub nie upłynie wartość limitu czasu (jeśli została podana).
  • Porównując bieżące zużycie danych użytkownika z ogólnym limitem danych, system operacyjny szacuje normalne zużycie danych użytkownika na koniec cyklu rozliczeniowego i konserwatywnie przydziela 10% nadwyżki danych, aby zwiększyć wygodę użytkownika, np. umożliwiając aplikacjom korzystanie z danych wielościeżkowych.

Dostosowywanie i weryfikacja

Aplikacja Ustawienia Androida wyświetla wszystkie szczegóły pakietu danych skonfigurowanego przez operatora, dzięki czemu użytkownicy widzą najdokładniejsze informacje o swojej relacji z operatorem i mogą przejść do aplikacji operatora, aby uaktualnić pakiet. Producenci urządzeń, którzy zdecydują się dostosować aplikację Ustawienia, powinni nadal wyświetlać te informacje.

Interfejsy API SubscriptionManager opisane na tej stronie są testowane przez android.telephony.cts.SubscriptionManagerTest, co zapewnia możliwość konfigurowania szczegółów pakietu danych przez aplikacje operatora i propagowania zmian w systemie operacyjnym.