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

Устройства 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 ). При реализации настроенной версии или поведения вам следует отразить эти настройки в выделенных модульных тестах.