ACCESS_FINE_LOCATION Les autorisations AndroidManifest ne sont pas accordées
J'essaie d'utiliser le GPS sur Android (2.2 et 2.3), mais je reçois le message d'erreur suivant lorsque j'essaie d'utiliser le LocationManager objet:
WARN/System.err(522): java.lang.SecurityException: Provider network requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission
J'ai étudié la question dans d'autres messages et ils sont généralement dues à des problèmes de AndroidManifest.xml. Cependant, la mienne semble bien se passer:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thedigitalsean.examples"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".GetLocation"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permisssion.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permisssion.INTERNET"></uses-permission>
</manifest>
Voici la ligne de code malveillant dans ma méthode onCreate dans le GetLocation Activité, enfermé dans un bloc try/catch:
LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
final LocationListener locListener = new MyLocListener();
try{
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
}
catch (SecurityException se){
((TextView)findViewById(R.id.infobox)).setText(se.toString());
se.printStackTrace();
}
C'est la première application que j'ai écrit où j'ai besoin de demander des autorisations android et ont été vains jusqu'à présent donné toutes les autorisations que ce soit. Est-il quelque chose qui me manque dans mon manifeste ou peut-être dans ma configuration eclipse?
source d'informationauteur thedigitalsean
Vous devez vous connecter pour publier un commentaire.
Que vous avez mal orthographié autorisation
J'ai eu le même problème et ne pouvait pas comprendre ce que je faisais mal. S'avère, l'auto-complétion pour Android Studio était en train de changer le texte tout en majuscules ou en minuscules (selon que j'ai tapé en majuscules ou en bas de fonte mots avant de l'auto-complétion). L'OS n'était pas l'enregistrement du nom à cause de ce problème et je reçois le message d'erreur concernant un manque d'autorisation. Comme indiqué ci-dessus, assurez-vous que les autorisations sont étiquetés correctement:
Corriger:
Incorrect:
Incorrect:
Même si cela peut sembler trivial, il est facile de négliger.
Si il y a un réglage à faire autorisations non sensible à la casse, s'il vous plaît ajouter un commentaire avec les instructions. Merci!!!!
Compatible avec toutes les versions du SDK (
android.permission.ACCESS_FINE_LOCATION
est devenudangerous
permission Android M et oblige l'utilisateur à s'accorder manuellement).Dans les versions d'Android ci-dessous Android M
ContextCompat.checkSelfPermission(...)
retourne toujourstrue
si vous ajoutez les autorisation(s) dansAndroidManifest.xml
)dans AndroidManifest.xml: