В 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 , что гарантирует возможность настройки параметров тарифного плана приложениями оператора связи и распространение изменений внутри операционной системы.