Android 9 umożliwia operatorom bezpośrednie przekazywanie użytkownikom wiarygodnych informacji o planie w aplikacji Ustawienia, co zmniejsza dezorientację użytkowników i liczbę połączeń z obsługą klienta. Na urządzeniach z Androidem 4.0 i nowszym użytkownicy mogą ręcznie konfigurować szczegóły pakietu danych operatora w aplikacji Ustawienia, np. ustawiać ostrzeżenia i limity, aby zarządzać zużyciem danych.
Konfiguracja przez operatora
Aby skonfigurować plany taryfowe, operatorzy mogą dodać funkcje do swoich dotychczasowych
aplikacji na Androida za pomocą
SubscriptionPlan interfejsów API.
Interfejsy API są zaprojektowane tak, aby obsługiwać szeroki zakres typów pakietów danych, w tym plany cykliczne i niecykliczne oraz plany, które zmieniają się w czasie.
Oto przykład konfiguracji typowego pakietu danych, 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 umożliwia aplikacji konfigurowanie planów taryfowych tylko w jednym z tych przypadków:
- Karta SIM ma wyraźnie zdefiniowaną aplikację, która może nią zarządzać, zgodnie z definicją
SubscriptionManager.canManageSubscription(). - Operator przesłał wartość
KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRINGza pomocąCarrierConfigManager, aby wskazać, która aplikacja może zarządzać pakietami danych operatora. - Urządzenie ma aplikację wbudowaną w obraz systemu, która ma uprawnienie
MANAGE_SUBSCRIPTION_PLANS.
Pierwsze 2 warunki umożliwiają użytkownikowi zainstalowanie aplikacji operatora bez konieczności jej wstępnej instalacji w obrazie systemu w fabryce. System operacyjny wymusza (a CDD wymaga), aby wszystkie skonfigurowane szczegóły planu taryfowego były chronione i udostępniane tylko aplikacji operatora, która pierwotnie przekazała te informacje 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, ale operatorzy mogą korzystać z wielu mechanizmów, np. otrzymywać szczegóły pakietu danych w wewnętrznych wiadomościach SMS operatora. Usługi konserwacji w stanie bezczynności najlepiej implementować za pomocą a
JobScheduler zadania, które używa
setRequiresDeviceIdle()
i
setRequiresCharging().
Użycie przez system operacyjny
System operacyjny używa szczegółów pakietu danych udostępnianych przez interfejsy API SubscriptionPlan w następujący sposób:
- Szczegóły planu są wyświetlane w aplikacji Ustawienia, aby pokazywać użytkownikom dokładne użycie danych i udostępniać bezpośrednie precyzyjne linki do aplikacji operatora w celu umożliwienia użytkownikom przejścia na wyższy plan lub sprzedaży dodatkowej.
- Progi ostrzeżeń i powiadomień o limitach użycia danych są automatycznie konfigurowane na podstawie szczegółów planu. Ostrzeżenie jest ustawiane 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, co zmniejszy obciążenie sieci operatora.
- Jeśli operator tymczasowo wskaże, że sieć jest "nielimitowana", system operacyjny może zgłaszać połączenie komórkowe jako "nielimitowane", dopóki operator nie wyczyści zastąpienia lub nie zostanie osiągnięta wartość limitu czasu (jeśli została podana).
- Porównując bieżące zużycie danych przez użytkownika z ogólnym limitem danych, system operacyjny szacuje normalne zużycie danych przez użytkownika na koniec cyklu rozliczeniowego i konserwatywnie przydziela 10% nadwyżki danych, aby poprawić wrażenia użytkownika, np. umożliwiając aplikacjom korzystanie z danych wielościeżkowych.
Dostosowywanie i weryfikacja
Aplikacja Ustawienia na Androidzie wyświetla wszystkie szczegóły pakietu danych skonfigurowane przez operatora, dzięki czemu użytkownicy widzą najdokładniejszy stan relacji z operatorem i mogą przejść do aplikacji operatora, aby zmienić plan. Producenci urządzeń, którzy chcą 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, że szczegóły pakietu danych
mogą być konfigurowane przez aplikacje operatora, a zmiany są propagowane w
systemie operacyjnym.