Google est informé par courriel des modifications apportées à l'Android autorisations de position:
Nous faisons un changement, sur octobre 15, 2016 qui aura d'impact sur les applications le ciblage de la version de l'API 21 (Android 5.0, Lollipop) est supérieur ou égal à utiliser ACCESS_FINE_LOCATION mais ne sont pas explicitement l' "android.matériel.emplacement.gps" uses-feature. À l'avenir, ces applications seront disponibles à installer sur les appareils qui n'ont pas de GPS matériel. Dans la plupart des cas ce ne sera pas un problème, puisque la connexion Wi-Fi gratuite et de la Cellule-ID en fonction de l'emplacement fournit assez haute fidélité pour le fonctionnement typique de ces applications. Cependant, toutes les applications nécessitant un matériel GPS, tels que Les navigateurs GPS, devrait ajouter explicitement le "android.matériel.emplacement.gps" uses-feature de leur manifeste.
Si votre application nécessite un GPS pour fonctionner correctement et vous ne comprennent pas dans votre manifeste, déclaration, vos utilisateurs peut avoir une mauvaise application l'expérience.
Aussi, si vous êtes en utilisant pour la fusion fournisseur d'emplacement et que vous souhaitez recevoir la localisation la plus précise des échantillons de GPS (c'est à dire avec PRIORITY_HIGH_ACCURACY), vous devez inclure le "android.matériel.emplacement.gps" dans le manifeste de l'application de s'assurer que Google Play ne distribue que de votre application pour les appareils avec GPS les capteurs.
Vous pouvez lire plus au sujet de ce changement dans l' Développeurs Android Aider Centre de.
À partir de l' Android Développeurs Centre d'Aide
Afin de recevoir de l'emplacement des mises à jour de NETWORK_PROVIDER ou GPS_PROVIDER, vous devez demander la permission de l'utilisateur en déclarant le ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION autorisation, respectivement, dans votre fichier manifeste Android. Sans ces autorisations, votre application ne pourra pas lors de l'exécution lors de la demande de l'emplacement des mises à jour.
Si vous utilisez les deux NETWORK_PROVIDER et GPS_PROVIDER, alors vous avez besoin de demander uniquement les ACCESS_FINE_LOCATION autorisation, car il comprend une autorisation pour les fournisseurs de soins. L'autorisation pour ACCESS_COARSE_LOCATION permet d'accéder uniquement à NETWORK_PROVIDER.
Attention: Si votre application cibles Android 5.0 (API level 21) ou plus, vous devez déclarer que votre application utilise le android.matériel.emplacement.réseau ou android.matériel.emplacement.matériel gps de la fonctionnalité dans le fichier de manifeste, selon que votre application reçoit l'emplacement des mises à jour de NETWORK_PROVIDER ou de GPS_PROVIDER. Si votre application reçoit des informations de localisation à partir de l'un de ces emplacement fournisseur de sources, vous avez besoin de déclarer que l'application utilise ces fonctionnalités matérielles dans votre manifeste de l'application. Sur les appareils exécutant verions avant d'Android 5.0 (API 21), en demandant à l'ACCESS_FINE_LOCATION ou ACCESS_COARSE_LOCATION permission comprend implicite de la demande pour l'emplacement des fonctionnalités matérielles. Toutefois, en demandant à ces autorisations ne pas demander automatiquement l'emplacement du matériel de fonctionnalités sur Android 5.0 (API level 21) et plus élevé.
Je suis l'aide de la fondue fournisseur d'emplacement, le ciblage de l'API 21, et à l'aide de ACCESS_FINE_LOCATION
. Je n'ai pas spécialement de soins si le GPS est disponible, mais seulement que la localisation la plus précise est signalé.
- Basé sur la première citation, je pense que je n'ai pas à faire des changements.
- Basé sur la deuxième citation, je pense que j'ai besoin à la fois d'
android.hardware.location.gps
etandroid.hardware.location.network
. Ou est-ce seulement pourLocationManager
et pas à fusibles emplacement?
Ai-je besoin d' android.hardware.location.gps
et android.hardware.location.network
ou pas?