Реализовать планы данных

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