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 für 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, teilt mir Android Studio mit, dass sie 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?
ändere das
Manifest.permission.ACCESS_FINE_LOCATION
das sehr gut finden
android.Manifest.permission.ACCESS_FINE_LOCATION
quelle
Versuche dies! Da ACCESS_FINE_LOCATION im folgenden Paket verfügbar ist, fügen Sie hinzu:
import android.Manifest;
quelle
Ich hatte ein ähnliches Problem, wo verwendet;
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 begann zu erkennen
READ_CONTACT
quelle
wenn Sie arbeiten an dynamischen Berechtigungen und jede Berechtigung wie ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION Fehler geben „kann nicht lösen Methode PERMISSION_NAME“ in diesem Fall schreiben Sie Code mit Erlaubnis Namen und dann Ihr Projekt neu erstellen dies regenerieren das Manifest (Manifest.permission) Datei
quelle
Wenn Sie bereits das haben uses.permissions Setup richtig in Ihrer Manifest - Datei, wie bereits von hnilsen erwähnt, ersetzen Sie einfach Ihre Linie:
Manifest.permission.ACCESS_FINE_LOCATION
von diesem:
android.Manifest.permission.ACCESS_FINE_LOCATION
Dies kann Ihr Problem lösen.
quelle
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); }
quelle
Versuchen Sie dies vor dem Ausführen. Stellen Sie sicher, dass Sie über die Berechtigung zum Zugriff 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 }
quelle
Veränderung
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
Dazu
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}
Ihr Problem wird gelöst.
quelle
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
ändere es auf
android.manifest.permission.ACCESS_FINE_LOCATION
quelle
new String[]{
Teil entfernen ?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; }
quelle
Wenn Sie "Manifest" eingeben, sollte Android Studio Ihnen empfehlen, einige Manifest-Optionen auszuwählen. Sie sollten den einen Start Android anstelle des Namens Ihres Projekts wählen.
Wenn Sie auf die Referenz von Manifest.java zugreifen und feststellen, dass die Klasse "Berechtigung" nur 1-2 Zeilen enthält, verweisen Sie auf die falsche Manifestklasse.
quelle