I am using android studio and compileSdkVersion is 23 in that i am using below code
if(locationManager != null){
locationManager.removeUpdates(GPSListener.this);
}
to stop gps update where GPS Listener is a class which implements LocationListener.
but in removeUpdates line i am getting below lint warning
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with
checkPermission
) or handle a potentialSecurityException
I am not getting what is the issue in the above code. Any extra permission need to be added in manifest file?.
Regards.
I wasn't able to use
checkSelfPermission()
, because my min API is 14 and 23 is required. Knowing that, you can alsotry
tocatch
aSecurityException
.Example:
Since SDK 23, you should/need to check the permission before you call Location API functionality. Here is an example of how to do it:
There is
checkSelfPermission()
, which is to check if 'you' (this app) has the correct permissions. There is alsocheckPermission()
, which is to check if another process has the correct permissions.Notes
ContextCompat.checkSelfPermission()
instead (thanks to JerryBrady)To add to Jerry Brady's comment regarding ContextCompat, this is be the full code for < 23:
Here is my solution !