Настройте поведение устройства для пользователей, находящихся в дисбалансе

Устройства Android без баланса данных пропускают сетевой трафик, что требует от операторов связи и телекоммуникационных компаний внедрения протоколов для его устранения. В Android реализовано универсальное решение, позволяющее операторам связи и телекоммуникационным компаниям сообщать о том, что баланс устройства исчерпан.

Платформа Android предоставляет операторское приложение по умолчанию с заданным поведением для снижения трафика на основе сигнала обнаружения портала авторизации. Кроме того, операторы связи и OEM-производители могут гибко и недорого настраивать это поведение.

Примеры и источники

Приложение-оператор по умолчанию находится по адресу platform/frameworks/base/packages/CarrierDefaultApp/ .

Выполнение

Приложение оператора связи по умолчанию настроено для обеспечения наилучшего взаимодействия с ненастроенными операторами связи. Операторы связи могут использовать это поведение по умолчанию. Они также могут переопределить поведение по умолчанию, добавив сопоставления сигналов и действий в XML-файл конфигурации оператора связи. Они могут отказаться от использования приложения по умолчанию и вместо этого использовать привилегии UICC в своем собственном автономном приложении оператора связи.

Введение в реализацию

Сигналы

Платформа Android поддерживает настройку действий для следующих параметризованных сигналов:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Эти сигналы находятся в frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Поддерживаемые действия

Приложение оператора связи по умолчанию определяет набор поддерживаемых действий, которые можно сопоставить с поддерживаемыми сигналами. Они определены в файле CarrierActionUtils.java :

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

Примечание: Если оператор реализует собственное автономное приложение, он может реализовать поддержку сигналов, отличных от упомянутых в этом разделе. Он также может определять и настраивать собственные действия.

Сопоставления сигналов и действий по умолчанию

Настройте действия по умолчанию, выполнив следующий процесс:

  1. Определите ключ для поддерживаемых сигналов.

    Сопоставления сигналов и действий по умолчанию определены в CarrierConfigManager.java . Каждый из поддерживаемых сигналов имеет ключ:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
  2. Свяжите действия по умолчанию с сигнальными клавишами.

    Идентификаторы действий по умолчанию связаны с ключами сигналов:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    // 4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    Структура телефонии сопоставляет эти действия с соответствующими сигналами.

Переопределить действия по умолчанию

Вы можете определить пользовательские действия для поддерживаемых сигналов в XML-файле конфигурации оператора, связав идентификаторы действий с ключами сигналов (определёнными в CarrierConfigManager.java ). Например, следующее сопоставление отключает тарифицируемые APN и отображает уведомление портала при перенаправлении:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

Инфраструктура телефонии загружает эти конфигурации и переопределяет действия по умолчанию.

Проверка

Для этой функции не существует тестов CTS, CTS Verifier или GTS.

Используйте эти ручные проверочные тесты для проверки функции:

  1. Проверить уведомление о дисбалансе сигнала на устройстве телекоммуникационной компании.
  2. Проверьте регулирование перенаправления трафика в состоянии дисбаланса и отключенного Wi-Fi.
  3. Убедитесь, что сетевой трафик отключен и в состоянии дисбаланса появляется пользовательский интерфейс уведомлений.
  4. Проверка функции голосового вызова/VoLTE в состоянии дисбаланса.
  5. Убедитесь, что видеозвонки заблокированы в состоянии дисбаланса.
  6. При включенном Wi-Fi убедитесь, что пользователь может продолжать просмотр веб-страниц, а трафик браузера не включает сетевой трафик в состоянии дисбаланса.
  7. Проверьте функции Wi-Fi, WFC и Bluetooth в состоянии разбалансировки.
  8. Отключите Wi-Fi. Проверьте интерфейс уведомления о дисбалансе и убедитесь, что обычный трафик браузера не перенаправляется на сайт регистрации оператора связи. Убедитесь, что при нажатии на ссылку в интерфейсе уведомления браузер переходит на сайт регистрации оператора связи.
  9. Убедитесь, что переключение в режим полета не сбрасывает состояние регулирования трафика.
  10. Убедитесь, что замена работающей SIM-карты сбрасывает состояние сетевого трафика.
  11. Убедитесь, что повторная установка несбалансированной SIM-карты перезапускает перенаправление трафика и снова обеспечивает регулирование сетевого трафика.
  12. Убедитесь, что перезагрузка телефона повторно активирует перенаправление и возвращает в действие пользовательский интерфейс управления трафиком и уведомлений.
  13. Нажмите на уведомление «captiveportal». Убедитесь, что установлено ограниченное сетевое соединение, чтобы пользователь мог добавлять кредиты.
  14. Убедитесь, что пополнение баланса SIM-карты или повторная активация приводят к восстановлению трафика сотовой сети, а также к исчезновению уведомления о связи с телекоммуникационной компанией и отсутствии баланса.
  15. Проверка работоспособности после восстановления службы данных.

Приложение по умолчанию предоставляет несколько примеров модульных тестов и скрипт для их запуска (см. tests/runtest.sh ). При реализации модифицированной версии или поведения необходимо реализовать эти настройки в виде отдельных модульных тестов.