Personnalisation du comportement de l'appareil pour les utilisateurs déséquilibrés

Les appareils Android sans équilibre de données autorisent le trafic réseau, obligeant les opérateurs et les opérateurs de télécommunications à mettre en œuvre des protocoles d'atténuation. Android met en œuvre une solution générique qui permet aux opérateurs et aux opérateurs de télécommunications d'indiquer lorsqu'un appareil est déséquilibré.

La plate-forme Android fournit une application d'opérateur par défaut avec un comportement par défaut pour l'atténuation du trafic basé sur le signal de détection du portail captif. Il offre également aux opérateurs et aux équipementiers la possibilité de personnaliser leur comportement à faible coût et avec une grande flexibilité.

Exemples et source

L'application de l'opérateur par défaut se trouve dans platform/frameworks/base/packages/CarrierDefaultApp/ .

Mise en œuvre

L'application de l'opérateur par défaut est configurée pour offrir une meilleure expérience aux opérateurs non configurés, prête à l'emploi. Les opérateurs peuvent utiliser ce comportement par défaut. Ils peuvent également remplacer le comportement par défaut en ajoutant des mappages signal-action au fichier XML de configuration de l'opérateur. Ils peuvent décider de ne pas utiliser l'application par défaut et d'utiliser à la place les privilèges UICC avec leur propre application d'opérateur autonome.

Introduction à la mise en œuvre

Signaux

Le framework Android prend en charge la configuration des actions sur les signaux paramétrés suivants :

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Ces signaux se trouvent dans frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Actions prises en charge

L'application de l'opérateur par défaut définit un ensemble d'actions prises en charge qui peuvent être mappées aux signaux pris en charge. Ceux-ci sont définis dans 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;

Remarque : Si un opérateur implémente sa propre application autonome, il peut alors implémenter la prise en charge de signaux autres que ceux mentionnés dans cette section. Ils peuvent également définir et configurer leurs propres actions.

Mappages signal-action par défaut

Configurez les actions par défaut en suivant ce processus :

  1. Définissez une clé pour les signaux pris en charge.

    Les mappages signal-action par défaut sont définis dans CarrierConfigManager.java . Chacun des signaux pris en charge possède une clé :

    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. Associez des actions par défaut aux clés de signal.

    Les identifiants d'action par défaut sont associés aux touches de signal :

    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
             });
    

    Le cadre de téléphonie mappe ces actions aux signaux correspondants.

Remplacement des actions par défaut

Vous pouvez définir des actions personnalisées pour les signaux pris en charge dans le fichier XML de configuration de l'opérateur en associant des ID d'action aux clés de signal (définies dans CarrierConfigManager.java ). Par exemple, le mappage suivant désactive les APN mesurés et affiche une notification de portail en cas de redirection :

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

Le framework de téléphonie charge ces configurations et remplace les actions par défaut.

Validation

Il n'existe aucun test CTS, CTS Verifier ou GTS pour cette fonctionnalité.

Utilisez ces tests de validation manuels pour valider la fonctionnalité :

  1. Validez la notification du signal de déséquilibre de l'appareil de la société de télécommunications.
  2. Vérifiez la limitation de la redirection du trafic en cas de déséquilibre et lorsque le Wi-Fi est désactivé.
  3. Vérifiez que le trafic réseau est désactivé et que l'interface utilisateur de notification apparaît en cas de déséquilibre.
  4. Validez la fonction d'appel vocal/VoLTE en cas de déséquilibre.
  5. Vérifiez que les appels vidéo sont bloqués en cas de déséquilibre.
  6. Lorsque le Wi-Fi est activé, vérifiez que l'utilisateur peut continuer à naviguer sur le Web et que le trafic de navigation n'active pas le trafic réseau lorsqu'il est déséquilibré.
  7. Validez les fonctions Wi-Fi, WFC et Bluetooth en cas de déséquilibre.
  8. Désactivez le Wi-Fi. Vérifiez l'interface utilisateur de notification de déséquilibre et que le trafic de navigation ordinaire n'est pas redirigé vers le site Web d'enregistrement de l'opérateur de télécommunications. Vérifiez que le fait de cliquer sur le lien dans l'interface utilisateur de notification amène le navigateur au site Web d'enregistrement de l'opérateur de télécommunications.
  9. Vérifiez que le basculement en mode avion ne réinitialise pas l’état de limitation du trafic.
  10. Vérifiez que l'échange d'une carte SIM en service réinitialise l'état du trafic réseau.
  11. Vérifiez que la réinsertion de la carte SIM déséquilibrée redémarre la redirection du trafic et obtient à nouveau la limitation du trafic réseau.
  12. Vérifiez que le redémarrage du téléphone réactive la redirection et ramène l'interface utilisateur de limitation du trafic et de notification.
  13. Appuyez sur la notification « portail captif ». Vérifiez qu'une connexion réseau restreinte est établie pour permettre à l'utilisateur d'ajouter des crédits.
  14. Vérifiez que le rechargement ou la réactivation du solde SIM entraîne la récupération du trafic du réseau cellulaire, ainsi que la disparition du lien Telco et de la notification d'absence de solde.
  15. Test d'intégrité après la récupération du service de données.

L'application par défaut fournit quelques exemples de tests unitaires et un script pour les exécuter (voir tests/runtest.sh ). Lorsque vous implémentez une version ou un comportement personnalisé, vous devez refléter ces personnalisations dans des tests unitaires dédiés.