Ich habe einen Fehler, wenn ich versuche, in Android letzten bekannten Ort zu bekommen 6,0Android 6.0 getLastKnowLocationPermission
Location lastLocation =locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Fehler:
java.lang.SecurityException: "network" location provider requires ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission.
Mein Manifest:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Check Berechtigungen:
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(context,
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
try {
ActivityCompat.requestPermissions(getActivity(), new String[] {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION },
1);
} catch (Exception e) {
e.printStackTrace();
}
}
PointDTO point = new PointDTO();
try {
Location lastLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
// addresses = geocoder.getFromLocation(lat, lon, 1);
// // String cityName = addresses.get(0).getAddressLine(0);
// // String countryName = addresses.get(0).getAddressLine(2);
// address= addresses.get(0).getAddressLine(0);
point.setLat(lastLocation.getLatitude());
point.setLon(lastLocation.getLongitude());
} catch (NullPointerException | SecurityException e) {
e.printStackTrace();
}
return point;
Was ich falsch gemacht habe? Es funktioniert in Android Api 23-
UPD:
NPE:
ActivityCompat.requestPermissions(getActivity(), new String[] {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION },
1);
Security
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
überprüfen Sie bitte, ob Sie Ausnahme –
bekommen sind glaube ich Ihnen nicht einmal die letzte bekannte Position, ohne den Benutzer Zuschuss erhalten können Sie zu den Orten Zugriff –
@MohammadAbbas Ich versuche es mit Anforderung von Berechtigungen zu erhalten, und Manifest hat diese Erlaubnis. Wie geht es dann in diesem Fall? –