it-swarm.com.de

Manifest.permission.ACCESS_FINE_LOCATION kann nicht aufgelöst werden

Beim Hinzufügen von Berechtigungen zu meiner Manifestdatei funktioniert die folgende XML-Datei.

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

Diese XML funktioniert jedoch nicht.

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

Welches soll ich verwenden? Wenn es das erste ist, warum würde es nicht funktionieren? Wie kann ich es reparieren?

Außerdem erhalte ich eine Ausnahme in Bezug auf die Laufzeitberechtigungen für Android 6.0):

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

Wenn ich versuche, die Berechtigung einem String-Array hinzuzufügen, um die Berechtigung zu überprüfen, gibt Android Studio an, dass Manifest.permission Im folgenden Code nicht aufgelöst werden kann:

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

Warum sollte es das tun? Wie kann ich es reparieren?

71
Pablo Cegarra

Für den ersten Teil sollten Sie <uses-permission>verwenden, wie auf der Android Devlopers-Site angegeben. Stellen Sie sicher, dass Sie Ihre Berechtigungen deklarieren direkt unter dem <manifest> - Tag, nicht in Ihrem <application> - Tag. Es ist schwer zu wissen, was Ihr Problem ist, ohne es zu sehen Ihre gesamte Manifestdatei. Weitere Informationen zum Deklarieren von Berechtigungen in Ihrem Manifest finden Sie unter dem oben angegebenen Link .

In Bezug auf Ihr Laufzeitberechtigungsproblem:

With uses-permissions Kann das nicht auflösen.

neuer String [] {Manifest.permission.ACCESS_FINE_LOCATION}

Warum?

Stellen Sie sicher, dass Sie Android.Manifest Anstelle von my.app.package.Manifest Verwenden. Häufig verwendet Android Studio standardmäßig das letztere anstelle des ersteren.

Ihre neue Codezeile würde also so aussehen:

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

Edit: Ich habe meine Antwort neu formatiert.

Edit 2: Seien Sie vorsichtig beim Importieren von Android.Manifest. Es kann can Probleme verursachen, wenn Sie auch my.app.package.Manifest Importieren. Abgesehen davon ist import Android.Manifest Eine weitere gültige Methode, um dieses Problem zu beheben.

209
sonictt1

ändere das

Manifest.permission.ACCESS_FINE_LOCATION

das mögen

Android.Manifest.permission.ACCESS_FINE_LOCATION

81
fcicer

Versuche dies! Da ACCESS_FINE_LOCATION in folgendem Paket verfügbar ist, fügen Sie Folgendes hinzu:

import Android.Manifest;

Für den Fall, dass Sie nicht mehr weiterkommen möchten

19

Ich hatte ein ähnliches Problem, wo verwendet;

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

wo es das Symbol READ_CONTACTS nicht auflösen konnte.

Jedoch bei der Verwendung von;

import Android.Manifest;

Es begann zu erkennen, READ_CONTACT

5

wenn Sie an dynamischen Berechtigungen und Berechtigungen wie ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION arbeiten und einen Fehler melden "Methode PERMISSION_NAME kann nicht aufgelöst werden" In diesem Fall schreiben Sie den Code mit dem Berechtigungsnamen und dann Erstellen Sie Ihr Projekt ne Dies wird neu generieren die Manifest-Datei (Manifest.permission)

3
anoopbryan2

Wenn Sie bereits das ses.permissions - Setup korrekt in Ihrer Manifest-Datei haben, wie bereits von hnilsen erwähnt, ersetzen Sie einfach Ihre Zeile:

 Manifest.permission.ACCESS_FINE_LOCATION

von diesem:

 Android.Manifest.permission.ACCESS_FINE_LOCATION

Dies kann Ihr Problem lösen.

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}

ändere es in

Android.manifest.permission.ACCESS_FINE_LOCATION
0

Versuchen Sie dies, bevor Sie ausführen, und stellen Sie sicher, dass Sie über die Zugriffsberechtigung verfügen.

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

Veränderung

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

Dazu

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

Ihr Problem wird gelöst.

0
Hassnain Jamil