web-dev-qa-db-fra.com

Quel type d'application Android Android nécessite l'autorisation Android.permission.READ_PHONE_STATE?

J'ai vu certaines Android sur mon téléphone nécessitent cette autorisation Android.permission.READ_PHONE_STATE. Je ne sais pas si je peux leur faire confiance. Je sais que cette autorisation donnera à l'application accès à de nombreuses informations . Je suis particulièrement intéressé par les fonctionnalités d'une application Android Android qui nécessitent normalement des informations telles que DeviceId, SimSerialNumber, SubscriberId?

25
Wei Yang

L'état du téléphone donne accès à de nombreuses informations sur le téléphone. Les usages habituels seront pour lire l'IMEI de votre téléphone et votre numéro de téléphone. Cela peut être utile pour vous identifier dans leurs systèmes.

Il peut également être nécessaire si l'application est rendue compatible pour Android 1.5 ou inférieur, car cette autorisation n'existait pas à l'époque et est ajoutée automatiquement par le Play Store à ces applications.

Voir aussi: https://Android.stackexchange.com/questions/605/why-do-so-many-applications-require-permission-to-read-the-phone-state-and-ident =

23
Samuel Bolduc

Une autre raison possible est qu'ils peuvent couper les événements audio si vous êtes au milieu d'un appel. C'est pourquoi des applications comme Pandora, Spotify, etc. ont besoin de l'autorisation - afin qu'elles puissent se mettre en sourdine lorsque vous recevez un appel.

20
Carl Anderson

Il y a peu de temps, j'ai découvert que pour certains appareils, vous devez ajouter Android.permission.READ_PHONE_STATE si votre application envoie des SMS. Dans certains cas, SmsManager essaie probablement de récupérer des informations sur l'état du téléphone avant d'envoyer des SMS.

Par exemple, obtenir une exception pour HUAWEI GRA-L09:

Java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10174 nor current process has Android.permission.READ_PHONE_STATE.
at Android.os.Parcel.readException(Parcel.Java:1543)
at Android.os.Parcel.readException(Parcel.Java:1496)
at com.Android.internal.telephony.ISms$Stub$Proxy.s! endMultipartTextForSubscriber(ISms.Java:1224)
at Android.telephony.SmsManager.sendMultipartTextMessage(SmsManager.Java:404)
2
MikeL