Android 9 позволяет операторам связи напрямую предоставлять пользователям достоверную информацию о тарифных планах в приложении «Настройки», чтобы уменьшить путаницу пользователей и количество обращений в службу поддержки. На устройствах под управлением Android 4.0 и выше пользователи могут вручную настраивать данные своего тарифного плана для конкретного оператора в приложении «Настройки», например, устанавливая предупреждения и ограничения для управления использованием данных.
Конфигурация по оператору связи
Чтобы настроить планы передачи данных, операторы связи могут добавить функциональность к своим существующим приложениям Android с помощью API SubscriptionPlan
. API-интерфейсы предназначены для поддержки широкого спектра типов планов передачи данных, включая как повторяющиеся, так и разовые планы, а также планы, которые меняются со временем.
Вот пример того, как настроить общий тип тарифного плана, который повторяется ежемесячно:
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()));
Устройство позволяет приложению настраивать тарифные планы только при одном из следующих условий:
- SIM-карта явно определила приложение, которое может ею управлять, как определено
SubscriptionManager.canManageSubscription()
. - Оператор связи передал значение
KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING
черезCarrierConfigManager
чтобы указать, какое приложение может управлять тарифными планами оператора связи. - В образ системы устройства встроено приложение с разрешением
MANAGE_SUBSCRIPTION_PLANS
.
Первые два условия позволяют пользователю установить операторское приложение без необходимости его предварительной установки в образ системы на заводе. ОС обеспечивает (и требует CDD), чтобы все настроенные сведения о тарифном плане были защищены и были доступны только приложению оператора связи, которое первоначально предоставило данные ОС.
Один из предлагаемых вариантов заключается в том, чтобы приложение оператора связи использовало службу обслуживания в режиме ожидания для ежедневного обновления сведений о тарифном плане, но операторы связи могут свободно использовать широкий спектр механизмов, таких как получение сведений о плане передачи данных через внутренние SMS-сообщения оператора. Службы обслуживания при простое лучше всего реализовать с помощью задания JobScheduler
, которое использует setRequiresDeviceIdle()
и setRequiresCharging()
.
Использование ОС
ОС использует сведения о плане передачи данных, предоставленные API-интерфейсами SubscriptionPlan, следующими способами:
- Подробности плана отображаются через приложение «Настройки», чтобы отображать точное использование данных для пользователей и предоставлять прямые глубокие ссылки на приложение оператора связи для возможностей обновления или дополнительных продаж.
- Предупреждения об использовании данных и пороговые значения уведомлений об ограничениях настраиваются автоматически на основе деталей плана; предупреждение установлено на 90% от предела.
- Если оператор связи временно указывает, что сеть «перегружена» , ОС задерживает задания JobScheduler, которые можно сдвигать по времени, снижая нагрузку на сеть оператора связи.
- Если оператор временно указывает, что сеть «неограничена» , ОС может сообщить о сотовом соединении как «неограниченном» до тех пор, пока оператор связи не отменит переопределение или пока не будет достигнуто значение тайм-аута (если оно предусмотрено).
- Сравнивая текущее использование данных пользователем с общим лимитом данных, ОС оценивает нормальное использование данных пользователем в конце платежного цикла и консервативно выделяет 10 % любых избыточных данных для улучшения пользовательского опыта, например, разрешая приложениям использовать многопутевые данные.
Настройка и проверка
Приложение «Настройки Android» отображает все сведения о тарифном плане, настроенном оператором связи, гарантируя, что пользователи видят наиболее точный статус своих отношений с оператором связи, и предлагает пользователям путь к приложению оператора связи для обновления своего плана. Производителям устройств, решившим настроить приложение «Настройки», рекомендуется продолжать предоставлять эти сведения.
API-интерфейсы SubscriptionManager
описанные на этой странице, тестируются с помощью android.telephony.cts.SubscriptionManagerTest
, что гарантирует, что детали плана передачи данных могут быть настроены приложениями оператора связи и что изменения распространяются в ОС.