Все опасное разрешение следует запрашивать во время выполнения, кроме упоминания их в манифесте.
В коде, где каждый вы пытаетесь получить доступ к Location, вам необходимо сначала проверитьесли вашему приложению был предоставлен доступ к местоположению, как показано ниже:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
} else {
// Show rationale and request permission.
}
Если вы случайно попросите пользователя предоставить разрешение на местоположение, вы получите обратный вызов здесь, если пользователи предоставят / не предоставят разрешение:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == MY_LOCATION_REQUEST_CODE) {
if (permissions.length == 1 &&
permissions[0] == Manifest.permission.ACCESS_FINE_LOCATION &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
} else {
// Permission was denied. Display an error message.
}
}
Для получения дополнительной информации, пожалуйста, обратитесь здесь .