web-dev-qa-db-fra.com

Android Map V2 - Pourquoi l'autorisation MAPS_RECEIVE

Considérez cela comme une question wiki.

Pendant que je configure mon projet pour prendre en charge Map V2, il y a eu une étape pour ajouter l'autorisation MAPS_RECEIVE.

<permission
          Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
<uses-permission Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>

Pourquoi nous créons et consommons l'autorisation de l'application elle-même?

Est-ce que l'application des services Google Play interagit en utilisant cette autorisation?

Cette permission ne peut pas s'occuper de ces choses?

<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>

Je pensais que l'utilisation d'une autorisation personnalisée était de permettre à d'autres applications de lancer/utiliser les services/ressources de notre application.

32
Mahendran

Pour les futurs visiteurs:

Cette autorisation est désormais totalement inutile. La dernière mise à jour de Google Play Services 3.1.59 l'a rendu inutile. En conséquence, il peut être supprimé.

source

80
Androiderson

C'est le même schéma que vous voyez lorsque vous utilisez Google Cloud Messaging (GCM) avec son C2D_MESSAGE autorisation. L'idée est de protéger un point de terminaison dans votre application (par exemple un récepteur de diffusion) afin qu'un autre composant (probablement une partie de l'API Maps) puisse le contacter en toute sécurité (sinon, une autre application pourrait se faire passer pour votre application en utilisant le même filtre d'intention).

Dans ce cas, alors, l'API Maps configure en interne un tel point de terminaison (de manière transparente pour vous) et peut, avec l'utilisation de cette autorisation, que ce point de terminaison ne peut pas être emprunté (car cela nécessiterait l'autorisation, qui est protégée par votre signature de la demande).

6
Jeremy Roman

Cette autorisation spécifie le nom de votre package. c'est à dire.

  <permission
          Android:name="package_name.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
  <uses-permission Android:name="package_name.permission.MAPS_RECEIVE"/>

ainsi, l'API google permet simplement à votre projet de recevoir la carte. L'autorisation indique où utiliser l'API.

5
Manisha

J'ai trouvé que cette autorisation est toujours nécessaire lors de l'utilisation du certificat de débogage. Lorsque j'ai exporté et signé mon application, cela a bien fonctionné, mais cela ne fonctionnerait pas lorsque j'utilisais le certificat de débogage. J'ai le MD5 pour mon certificat de débogage et mon certificat d'application associé à la même clé. Quand j'ai finalement ajouté ces autorisations supplémentaires, cela a fonctionné. J'utilise un Moto X exécutant 4.4 avec tout à jour.

3
TALE