8 votes

Combien de temps un identifiant d'abonnement reste-t-il dans Android ?

À partir du niveau 22 de l'API, Android prend en charge les appareils à double carte SIM. Au centre des API, il y a SubscriptionInfo.getSubscriptionId() .

À l'aide de ces identifiants, vous pouvez récupérer SmsManager pour chaque carte SIM afin d'envoyer des SMS et des MMS. Vous pouvez également identifier la carte SIM par laquelle un SMS a été reçu sur l'écran d'accueil. SMS_RECEIVED_ACTION et ainsi de suite.

Cependant, quelle est la durée de vie d'un numéro d'abonnement ? Puis-je stocker un numéro d'abonnement dans une base de données locale et compter sur le fait qu'il sera toujours valide et pointera vers la même carte SIM plus tard ? Par "ultérieurement", j'entends après avoir redémarré l'appareil, retiré sa carte SIM et l'avoir remise en place, ou même après une réinitialisation d'usine de l'appareil.

7voto

Yasmani Llanes Points 2280

J'ai testé la résistance des SubscriptionId moi-même, en utilisant deux cartes SIM, mais sur un appareil à carte SIM unique, puisque c'est ce dont je disposais à l'époque.

Tout d'abord, j'ai noté que la SubscriptionId le système me donnait lorsque la carte SIM A était insérée. Le système SubscriptionId que j'obtenais avait une valeur de 2 .

Ensuite, j'ai redémarré l'appareil. L'appareil SubscriptionId après le redémarrage était toujours 2 .

J'ai ensuite éteint l'appareil, retiré la carte SIM A et inséré la carte SIM B. Après avoir rallumé l'appareil, la carte SIM B s'est mise à clignoter. SubscriptionId modifié en 4 .

Enfin, j'ai éteint l'appareil, retiré la carte SIM B et remis la carte SIM A en place. Après avoir rallumé l'appareil, le SubscriptionId est redevenu 2 .

En conclusion, il semble qu'Android attribue une valeur de SubscriptionId propre à chaque carte SIM. Les SubscriptionId semble survivre aux redémarrages du système et au retrait et à la réinsertion de la carte SIM. Je n'ai pas testé les réinitialisations d'usine, mais mon intuition me dit qu'elle n'y survivra probablement pas, puisque le système n'a aucun historique d'interaction avec une carte SIM après une réinitialisation d'usine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X