/ / Manifest.permission.ACCESS_FINE_LOCATION kann nicht aufgelöst werden - Android, Dienst, Berechtigungen, GPS, Manifest

Kann nicht beheben Manifest.permission.ACCESS_FINE_LOCATION - Android, Dienst, Berechtigungen, GPS, Manifest

Wenn Sie meiner Manifestdatei Berechtigungen hinzufügen, funktioniert die unten stehende XML-Datei.

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

Diese XML-Datei funktioniert jedoch nicht.

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

Welches soll ich benutzen? Wenn es das erste ist, warum sollte es nicht funktionieren? Wie kann ich es reparieren?

Außerdem erhalte ich eine Ausnahme zu Android 6.0-Laufzeitberechtigungen:

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

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

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

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

Antworten:

190 für die Antwort № 1

Für den ersten Teil sollten Sie verwenden <uses-permission> gemäß der Android Devlopers-Site. Vergewissern Sie sich, dass Sie Ihre Berechtigungen angeben direkt unter dem <manifest> Tag, nicht in Ihrem <application> Etikett. Es ist schwer zu wissen, was Ihr Problem ist, ohne Ihre gesamte Manifestdatei zu sehen. Schauen Sie sich den Link an, den ich oben gepostet habe Weitere Informationen dazu, wie Sie Berechtigungen in Ihrem Manifest deklarieren.

In Bezug auf Ihr Laufzeitberechtigungsproblem:

Mit Anwendungsberechtigungen Kann das nicht auflösen ..

neuer String [] {Manifest.permission.ACCESS_FINE_LOCATION}

Warum?

Stellen Sie sicher, dass Sie wieder verwenden android.Manifest Anstatt von my.app.package.Manifest. In vielen Fällen wird Android Studio anstelle von erstem standardmäßig verwendet.

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 android.Manifest. Es kann Probleme verursachen, wenn Sie auch importieren my.app.package.Manifest. Anders als das import android.Manifest ist ein weiterer gültiger Weg, um dieses Problem zu lösen.


72 für die Antwort № 2

ändere das

Manifest.permission.ACCESS_FINE_LOCATION

das mögen

android.Manifest.permission.ACCESS_FINE_LOCATION


14 für die Antwort № 3

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

import android.Manifest;

Das


3 für die Antwort № 4

wenn Sie an dynamischen Berechtigungen und etwaigen Berechtigungen arbeiten ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION Fehler geben "Methode PERMISSION_NAME kann nicht aufgelöst werden" In diesem Fall schreiben Sie den Code mit dem Berechtigungsnamen und dann Baue dein Projekt neu auf dieser Wille regenerieren die Manifestdatei (Manifest.permission)


3 für die Antwort № 5

Ich hatte ein ähnliches Problem, wenn es verwendet wurde.

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

wo es Symbol nicht auflösen konnte READ_CONTACTS.

Jedoch bei der Verwendung;

import android.Manifest;

Es fing an zu erkennen READ_CONTACT


0 für die Antwort № 6
 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 für die Antwort № 7

Probieren Sie dies vor dem Ausführen aus, und stellen Sie sicher, dass Sie die Berechtigung zum Zugriff haben.

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 für die Antwort № 8

Veränderung

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

Um dies zu erreichen

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

Ihr Problem wird gelöst.


0 für die Antwort № 9
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

ändere es zu

android.manifest.permission.ACCESS_FINE_LOCATION

0 für die Antwort № 10

Wenn Sie schon die haben Verwendungen. Berechtigungen Richten Sie die Einstellung in Ihrer Manifestdatei korrekt ein, wie bereits von hnilsen erwähnt.

 Manifest.permission.ACCESS_FINE_LOCATION

von diesem:

 android.Manifest.permission.ACCESS_FINE_LOCATION

Dies kann Ihr Problem lösen.


-2 für die Antwort № 11

Versuche dies:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_SELECT_PICTURE);
return;
}

-2 für die Antwort № 12

Wenn Sie "Manifest" eingeben, sollte Android Studio Ihnen vorschlagen, einige Optionen für Manifest auszuwählen. Sie sollten den Start-Android anstelle des Namens Ihres Projekts wählen.

Wenn Sie auf die Referenz von Manifest.java zugreifen und feststellen, dass in der Klasse "Permission" nur 1-2 Zeilen vorhanden sind, referenzieren Sie die falsche Manifest-Klasse.