Sans équilibrage de données, les appareils Android laissent passer le trafic, les opérateurs et les télécommunications pour mettre en œuvre des protocoles d'atténuation. Android implémente une une solution générique permettant aux opérateurs et aux télécommunications d'indiquer qu'un appareil a à court d’équilibre.
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 en fonction du signal de détection du portail captif. Il fournit également les opérateurs et les OEM peuvent personnaliser le comportement une grande flexibilité.
Exemples et source
L'application de l'opérateur par défaut se trouve à l'adresse platform/frameworks/base/packages/CarrierDefaultApp/.
Implémentation
L'application de l'opérateur par défaut est configurée pour offrir une meilleure expérience aux utilisateurs sans configuration préalable. Les opérateurs peuvent utiliser ce comportement par défaut. Ils peuvent également ignorer le comportement par défaut en ajoutant des mappages signal-action aux le fichier XML de configuration de l'opérateur. Il peut décider de ne pas utiliser l’application par défaut et utilisez plutôt les droits UICC avec leur propre application autonome d'opérateur.
Présentation de l'implémentation
Signals
Le framework Android permet de configurer des actions selon les paramètres signaux:
TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED
Ces signaux sont situés
frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java
Actions autorisées
L'application de l'opérateur par défaut définit un ensemble d'actions compatibles qui peuvent être associées
signaux compatibles. Ils 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 met en œuvre sa propre application autonome, il peut accepter des signaux autres que ceux mentionnés dans cette . Ils peuvent également définir et configurer leurs propres actions.
Mappages par défaut des signaux et des actions
Configurez les actions par défaut en procédant comme suit:
- Définissez une clé pour les signaux compatibles.
Les mappages signal/action par défaut sont définis dans
CarrierConfigManager.java
. Chacun des signaux compatibles est associé à 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";
- Associez des actions par défaut aux clés de signal.
Les ID d'action par défaut sont associés aux clés 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 });
Telephony Framework met en correspondance ces actions avec les signaux correspondants.
Ignorer les actions par défaut
Vous pouvez définir des actions personnalisées pour les signaux compatibles dans le fichier XML de configuration de l'opérateur
en associant les ID d'action aux clés des signaux (définies dans
CarrierConfigManager.java
). Par exemple, le mappage suivant
désactive les APN facturés à l'usage et affiche une notification du portail lors de la redirection:
<string-array name="carrier_default_actions_on_redirection_string_array" num="2"> <item value="1" /> <item value="4" /> </string-array>
Telephony Framework charge ces configurations et remplace les paramètres par défaut actions.
Validation
Il n'existe pas de tests CTS, CTS Verifier ni GTS pour cette fonctionnalité.
Utilisez ces tests de validation manuels pour valider la fonctionnalité:
- Validez la notification de signal indiquant un déséquilibre entre les appareils de télécommunications.
- Vérifier la limitation de la redirection du trafic en cas d'état de déséquilibre et de connexion Wi-Fi désactivée.
- Vérifier que le trafic réseau est désactivé et que l'UI des notifications s'affiche pendant l'extinction de l'état d'équilibre.
- Permet de valider la fonction appel vocal/VoLTE en cas de déséquilibre.
- Vérifiez que les appels vidéo sont bloqués en situation de déséquilibre.
- Lorsque le Wi-Fi est activé, vérifiez que l'utilisateur peut poursuivre sa navigation sur le Web le trafic n'active pas le trafic réseau alors qu'il est dans un état de l'état.
- Valider les fonctions Wi-Fi, WFC et Bluetooth en cas de déséquilibre de l'état.
- Désactivez le Wi-Fi. Vérifiez l'interface utilisateur des notifications de déséquilibre le trafic de navigation n'est pas redirigé vers le site Web d'inscription aux télécommunications. Valider cliquer sur le lien dans l'interface utilisateur de notification permet d'accéder au navigateur site Web d'inscription.
- Vérifier que l'activation du mode Avion ne réinitialise pas la limitation du trafic de l'état.
- Vérifier que le changement d'une carte SIM en service réinitialise le trafic réseau de l'état.
- Vérifier que la réinsertion de la carte SIM déséquilibrée entraîne le redémarrage de la redirection du trafic et obtient à nouveau une limitation du trafic réseau.
- Vérifiez que le redémarrage du téléphone réactive la redirection et rétablit l'état la limitation du trafic et l'UI des notifications.
- Appuie sur le "portail captif" . Vérifier un réseau restreint est établie pour permettre à l'utilisateur d'ajouter des crédits.
- Vérifiez que le réapprovisionnement ou la réactivation de la carte SIM entraîne l'activation du réseau mobile le trafic à récupérer, et le lien Telco et aucune notification de solde à distance.
- 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
vous devez appliquer ces personnalisations à des tests unitaires dédiés.