Я использую API местоположения Google, чтобы показать местоположение пользователей на карте.Marshmallow - вопрос разрешения Runtime Google Maps
Когда приложение загружается в первый раз, отображается диалоговое окно логического обоснования, объясняющее, почему пользователю необходимо разрешить доступ к местоположению. Затем отображается runtime permission dialog
, и пользователи нажимают «Разрешить», чтобы включить доступ к местоположению. Затем карта загружается без каких-либо сбоев.
Однако, когда приложение возобновляется (после входа в фон), диалоговое окно с обоснованием не появляется, поскольку пользователь уже предоставил доступ к местоположению. В этом случае появляется только runtime permission dialog
. Теперь, если пользователь нажимает «Deny», приложение вылетает. Этот код прекрасно работает в Android версии ниже M (Lollipop, Jellybean, KitKat и др)
Есть ли способ обработать исключение во время выполнения на данном этапе?
Ошибка:
java.lang.SecurityException: Клиент должен иметь ACCESS_FINE_LOCATION разрешения просить места PRIORITY_HIGH_ACCURACY.
Я использую стандартный образец MyLocation демонстрационное приложение без каких-либо 3-сторонней библиотеки:
Я также попытался с помощью PermissionsDispatcher библиотеки, но одни и те же ошибки сохраняются.
PermissionDispatcher Android-Google-Maps-Demo
private void enableMyLocation() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Permission to access the location is missing.
PermissionUtils.requestPermission(this, LOCATION_PERMISSION_REQUEST_CODE,
Manifest.permission.ACCESS_FINE_LOCATION, true);
} else if (mMap != null) {
// Access to the location has been granted to the app.
mMap.setMyLocationEnabled(true);
}
}
Любая помощь высоко ценится.
Сообщение код, где вы запрашиваете разрешения, пожалуйста, –
Реализация принятия/отказа в разрешении не означает, что вы r будет работать нормально. Это зависит только от кода, который вы написали в этих случаях. Пожалуйста, опубликуйте методы обратного вызова onCreate() и запроса разрешений? –
Я использую точный пример, приведенный в [link] (https://github.com/googlemaps/android-samples/blob/master/ApiDemos/app/src/main/java/com/example/mapdemo/MyLocationDemoActivity. java) – Akshata