web-dev-qa-db-fra.com

Pourquoi l'autorisation READ_PHONE_STATE a-t-elle été ajoutée?

Dans la dernière version bêta que je viens de publier sur le Play Store, je remarque que le READ_PHONE_STATE a été ajouté depuis la version précédente.

Je n'ai pas ajouté cela moi-même. Tout ce dont je me souviens, depuis que la version précédente utilise la v9.6.0 de diverses bibliothèques de services de lecture (était la v9.4.0):

compile 'com.google.Android.gms:play-services-location:9.6.0'
compile 'com.google.Android.gms:play-services-places:9.6.0'
compile 'com.google.Android.gms:play-services-auth:9.6.0'

Cela l'aurait-il fait? Je ne peux pas le voir documenté. Puis-je me débarrasser de la permission?

Et je me suis assuré que toutes les bibliothèques que j'utilise correspondent à l'application principale, conformément à cette réponse ... ne fait aucune différence dans mon cas.

MODIFIER

OK, basé sur cet article , je me suis plongé dans la sortie de mon journal pour trouver:

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84 Android:uses-permission#Android.permission.READ_PHONE_STATE

Mais rien n’a changé dans la bibliothèque jobdispatcher (que j’ai importée dans mon projet en tant que module gradle) depuis la dernière version.

EDIT2

Voici un peu plus de ce journal, et mon sentiment est que c'est peut-être dû à la version de la bibliothèque de play-services comme suspectée?

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:17-87
    Android:name
        ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84
Android:uses-permission#Android.permission.READ_PHONE_STATE
IMPLIED from C:\Users\Me\AndroidStudioProjects\Meteogram\app\src\pro\AndroidManifest.xml:2:1-12:12 reason: com.google.Android.gmscore.integ.client.location has a targetSdkVersion < 4
activity#com.google.Android.gms.common.api.GoogleApiActivity

Le targetSdkVersion < 4 correspond à l'autre réponse ci-dessus, mais y a-t-il quelque chose que je puisse faire dans cette situation, puisque la bibliothèque de play-services n'est pas la mienne?

EDIT3

J'ai trouvé une réponse ... plutôt que de supprimer cette question, je la laisserai en place, avec une solution, au cas où cela serait utile pour d'autres (et au cas où quelqu'un d'autre aurait une meilleure solution!)

EDIT4

On dirait que cela a été corrigé dans 9.6.1.

19
drmrbrewer

J'ai finalement trouvé this , qui rapporte le même problème. Une solution de contournement est mentionnée dans Réponse n ° 3 , qui consiste à supprimer l'autorisation "manuellement" (mon hypothèse est que l'autorisation est uniquement requise pour les versions très anciennes d'Android, ce qui me convient car ma minSdk est 16):

<manifest ...
    xmlns:tools="http://schemas.Android.com/tools"
    ... >

<uses-permission
    Android:name="Android.permission.READ_PHONE_STATE"
    tools:node="remove" />
24
drmrbrewer

Ce problème est également présent dans Play Services v 12.0.0. Il y a un traqueur ouvert problème dessus . Il semble que le problème soit présent pour les deux autorisations:

  • Android.permission.READ_PHONE_STATE
  • Android.permission.WRITE_EXTERNAL_STORAGE

Il sera probablement corrigé avec 12.0.1 comme nous l'avons vu avec le correctif 10.0.1 (de la question initiale).

Jusque-là, je recommande de supprimer manuellement l'autorisation du manifeste, comme indiqué dans la réponse de drmrbrewer.

Mettre à jour
12.0.1 a été publié le 28 mars 2018, date à laquelle ce problème a été résolu . Voir les notes de version ici .

Ajoute minSdkVersion manquant dans les artefacts -license pour empêcher l'inclusion automatique des autorisations READ_PHONE_STATE et READ_EXTERNAL_STORAGE.

21
Mikkel Jørgensen

Update # 2: Version 10.0.1 corrige le problème.

Update: cela se produit également dans la version 10.0.0 des services Google Play, comme indiqué dans cet article .

_ {Réponse précédente: _

Per ce message dans la communauté Android Developers G + , l'un des modérateurs (moi) a publié ce commentaire:

J'ai déjà signalé ce problème en interne hier, lorsqu'un développeur l'a signalé, le correctif a déjà été effectué en interne et un SDK mis à jour est à venir.

Et le SDK mis à jour est maintenant disponible - utilisez la dépendance aux services 9.6.1 de Google Play.

20
ianhanniballake

Pour ceux qui recherchent le problème lié à la version 12.0.0 de Firebase, il suffit de mettre à niveau vers la version 12.0.1. C’était une erreur dans l’emballage de 12.0.0 et a été résolue en 12.0.1.

Consultez les notes de publication: https://developers.google.com/Android/guides/releases

5
Henrique Monte

Si vous n'êtes pas familiarisé avec Android (comme moi!) Et que vous ne savez pas exactement où doit se trouver l'extrait de drmrbrewer, la réponse est dans votre fichier app/manifests/AndroidManifest.xml principal, comme ceci:

  <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
      xmlns:tools="http://schemas.Android.com/tools"
      package="com.your.package">

      ...

      <!-- attempt to combat this issue: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added -->
      <uses-permission
          Android:name="Android.permission.READ_PHONE_STATE"
          tools:node="remove" />
      <uses-permission
          Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"
          tools:node="remove" />
  </manifest>
4
xaphod

Face au même problème. Je viens de vérifier que Google publie la nouvelle version. Mettre à jour vers la version 12.0.1 ou la dernière version. Ce problème aura disparu. 

1
Jakir Hossain