web-dev-qa-db-fra.com

Impossible de résoudre Manifest.permission.ACCESS_FINE_LOCATION

Lors de l'ajout d'autorisations à mon fichier manifeste, le code XML ci-dessous fonctionne.

 <permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />

Cependant, ce XML ne fonctionne pas.

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />

Lequel suis-je censé utiliser? Si c'est le premier, pourquoi ça ne marcherait pas? Comment puis-je le réparer?

En outre, je reçois une exception liée aux autorisations d'exécution Android 6.0:

Java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

Lorsque j'essaie d'ajouter l'autorisation à un tableau de chaînes afin de vérifier l'autorisation, Android Studio m'indique qu'il ne peut pas résoudre Manifest.permission dans le code ci-dessous:

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

Pourquoi ferait-il cela? Comment puis-je le réparer?

71
Pablo Cegarra

Pour la première partie, vous devriez utiliser <uses-permission>selon le site Android Devlopers . Essayez de vous assurer de déclarer vos autorisations directement sous la balise <manifest>, pas dans votre balise <application>. Il est difficile de savoir quel est votre problème sans consulter l'intégralité de votre fichier manifeste. Consultez le lien que j'ai posté ci-dessus pour plus d'informations sur la façon de déclarer des autorisations dans votre manifeste.

En ce qui concerne votre problème d'autorisations d'exécution:

With uses-permissions Impossible de résoudre ce problème ..

new String [] {Manifest.permission.ACCESS_FINE_LOCATION}

Pourquoi?

Assurez-vous que vous utilisez Android.Manifest au lieu de my.app.package.Manifest. Très souvent, Android Studio utilisera le dernier par défaut au lieu du premier.

Ainsi, votre nouvelle ligne de code ressemblerait à ceci:

new String[]{Android.Manifest.permission.ACCESS_FINE_LOCATION};

Edit: j'ai reformaté ma réponse.

Edit 2: Méfiez-vous d'importer Android.Manifest. Cela peut causer des problèmes si vous importez également my.app.package.Manifest. Autre que cela, import Android.Manifest est un autre moyen valide de résoudre ce problème.

209
sonictt1

change ça

Manifest.permission.ACCESS_FINE_LOCATION

dans cette

Android.Manifest.permission.ACCESS_FINE_LOCATION

81
fcicer

Essaye ça! Comme ACCESS_FINE_LOCATION est disponible dans le package suivant, ajoutez:

import Android.Manifest;

Un séjour sans faille

19
Sanket Parchande

J'ai eu un problème similaire où utilisé;

ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED 

où il n'a pas pu résoudre le symbole READ_CONTACTS.

Cependant sur l'utilisation;

import Android.Manifest;

Il a commencé à reconnaître READ_CONTACT

5
Madhur Bhatnagar

si vous travaillez sur des autorisations dynamiques et des autorisations telles que ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION en donnant une erreur "impossible de résoudre la méthode PERMISSION_NAME" dans ce cas, écrivez votre code avec le nom de l'autorisation, puis reconstruisez votre projet cela va régénérer le fichier manifeste (Manifest.permission)

3
anoopbryan2

Si vous avez déjà correctement configuré ses.permissions dans votre fichier manifeste, comme déjà mentionné par hnilsen, remplacez simplement votre ligne:

 Manifest.permission.ACCESS_FINE_LOCATION

par celui-ci:

 Android.Manifest.permission.ACCESS_FINE_LOCATION

Cela peut résoudre votre problème.

1
Marcelo Gumiero
 if (Build.VERSION.SDK_INT >= 23) {

            if (checkSelfPermission(Android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    || checkSelfPermission(Android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

                mapView.setMyLocationEnabled(true); 
            }
        }
        else
        {
            mapView.setMyLocationEnabled(true);

        }
0
Regis_AG
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

changez le en

Android.manifest.permission.ACCESS_FINE_LOCATION
0
Jagrit Vishwakarma

Essayez ceci avant de lancer, assurez-vous que vous avez la permission d'y accéder.

try {
    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
} catch (SecurityException e) {
   dialogGPS(this.getContext()); // lets the user know there is a problem with the gps
}
0
Bye Webster

Changement

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

Pour ça

new String[]{Android.Manifest.permission.ACCESS_FINE_LOCATION}

Votre problème sera résolu.

0
Hassnain Jamil