Если вы работаете в Android API версии 23 или выше, вам потребуется разрешение на время выполнения .Чтобы запросить разрешения, вы должны сделать это прямо перед использованием функции, которая использует разрешение:
int MY_PERMISSIONS_REQUEST_LOCATION = 123;
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
//app doesn't have permission yet
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSIONS_REQUEST_LOCATION);
} else {
// Permission has already been granted
}
Затем переопределите onRequestPermissionsResult, чтобы увидеть, дал ли пользователь разрешение:
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_LOCATION: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted
} else {
// permission denied
}
return;
}
}
}