Android 6.0 Getlastknowlocationpermission
I have a error when I'm trying to get last known location in Android 6.0 Location lastLocation =locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); Error: jav
Solution 1:
You should do get location work if runtime location permissions are given for marshmallow(android api 23 or above), check this:
This line of code
LocationlastLocation= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
here will show you error in code for security exception and ask to use runtime permission code everywhere for code, no need to worry you can execute the build with this error info.
privatevoidcheckRuntimePermissions(){
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(), newString[] {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION },
1);
} catch (Exception e) {
e.printStackTrace();
}
}else{
getMyLocation();
}
}
private PointDTO getMyLocation(){
PointDTOpoint=newPointDTO();
try {
LocationManagerlocationManager= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
LocationlastLocation= 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;
}
@OverridepublicvoidonRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQ_ACCESS_COARSE_LOCATION:
case REQ_ACCESS_FINE_LOCATION: {
// If request is cancelled, the result arrays are empty.if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay!
checkRuntimePermissions();
} else {
//do other operation because permission not given
}
return;
}
}
}
Solution 2:
I alos had the same problem while doing these.You should access location after granting the permission
it should be inside method onRequestPermissionsResult()
refer request permission blog
Post a Comment for "Android 6.0 Getlastknowlocationpermission"