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

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

,

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