J'essaie d'accéder à ACCESS_FINE_LOCATION
et s'il est introuvable, accédez ACCESS_COARSE_LOCATION
. Donc, je demande ces 2 autorisations, mais ils me donnent la même boîte de dialogue demandant l'autorisation de localisation. Je sais que ce sont les deux dans le même groupe, mais Google dit:
Remarque: Votre application doit toujours demander explicitement toutes les autorisations dont elle a besoin, même si l'utilisateur a déjà accordé une autre autorisation dans le même groupe. En outre, le regroupement des autorisations en groupes peut changer à l'avenir Android. Votre code ne doit pas reposer sur l'hypothèse que des autorisations particulières sont ou ne sont pas dans le même groupe.
Cela signifie que je demande ces 2 autorisations en une seconde, ce qui entraîne 2 boîtes de dialogue d'affilée. Cela ne me semble pas très convivial. Y a-t-il une meilleure façon?
Tu n'as pas besoin ACCESS_COARSE_LOCATION
autorisation lorsque vous définissez ACCESS_FINE_LOCATION
autorisation.
À partir de Android Documentation:
Demande d'autorisations utilisateur
Pour recevoir des mises à jour de position de
NETWORK_PROVIDER
ouGPS_PROVIDER
, vous devez demander l'autorisation de l'utilisateur en déclarantACCESS_COARSE_LOCATION
ouACCESS_FINE_LOCATION
autorisation, respectivement, dans votre fichier manifeste Android manifeste. Par exemple:<manifest> <uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION"/> ....... </manifest>
Sans ces autorisations, votre application échouera lors de l'exécution lors de la demande de mises à jour d'emplacement.
Remarque: Si vous utilisez les deux
NETWORK_PROVIDER
etGPS_PROVIDER
, vous devez alors demander uniquement leACCESS_FINE_LOCATION
autorisation, car elle inclut l'autorisation pour les deux fournisseurs. (Autorisation pourACCESS_COARSE_LOCATION
inclut une autorisation uniquement pourNETWORK_PROVIDER
.)
Veuillez consulter https://developer.Android.com/guide/topics/location/strategies.html