J'utilise Android Studio et CompilesDkversion est 23.
En ce que j'utilise ci-dessous Code pour arrêter la mise à jour GPS où l'écoute GPS est une classe qui implémente la localisationListener. p> mais dans la ligne RemoveUpdates, je reçois ci-dessous l'avertissement de peluche < / p> appel nécessite une autorisation qui peut être rejetée par l'utilisateur: le code devrait
vérifier explicitement pour voir si la permission est disponible (avec
Je ne reçois pas quelle est la question dans le code ci-dessus.
Toute autorisation supplémentaire doit être ajoutée dans le fichier manifeste?. P> Cordialement. P> P>
Checkpermission code>) ou gérer un potentiel
SecurityException code> p>
blockQuote>
4 Réponses :
Depuis SDK 23, vous devez vérifier l'autorisation avant d'appeler la fonctionnalité de l'API d'emplacement. Voici un exemple de comment le faire:
if (locationManager != null) { if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { locationManager.removeUpdates(GPSListener.this); } }
Notez que si votre cible est <23, vous devez utiliser contextCompat.CheckEfpermission () à la place.
Je veux pleurer. Pourquoi l'application aurait-elle besoin d'une autorisation pour supprimer une localisation déjà attachée du gestionnaire de localisation?
Je n'ai pas pu utiliser Exemple: P> VeckEfermission () code>, car mon API MIN a 14 ans et 23 est requis. Sachant que, vous pouvez également
essayer code> à
attraper code> A
SecurityException code>.
try {
locationManager.removeUpdates(GPSListener.this);
} catch (SecurityException e) {
Log.e("PERMISSION_EXCEPTION","PERMISSION_NOT_GRANTED");
}
La question est destinée à la version 23 du SDK cible. Il n'y a aucune relation avec min API.
La question était destinée à "CompilesDkversion 23" qui ne signifie pas que l'application est ciblée 23. Si vous souhaitez une compatibilité en arrière avec une prise en charge complète Android M, utilisez contextCompat.checkEfpermission () à la place et cela fonctionnera.
Je suis désolé. Je n'ai pas réalisé ça. Mais je pense que cette option utilise-t-elle toujours utile.
Cette réponse m'a aidé. Mais je pense que ce n'était pas une solution appropriée. Mais je l'ai levé.
Pour ajouter au commentaire de Jerry Brady concernant contextCompatat, c'est le code complet de <23:
XXX PRE> P>
Voici ma solution!
développeur.android.com/preview/features/runtime-permissions.h tml < / a>