Я заметил несколько плакатов о переполнении стека, пытаясь это сделать, но моя ситуация немного отличается. У меня есть класс Login, и когда пользователь проходит аутентификацию, я объявляю ему Intent для моего класса NavDrawer, который служит в качестве основного действия. Я использую фрагмент карты, чтобы показать карту Google, но когда пользователь входит в систему в первый раз, синяя точка (вызов setMyLocationEnabled = true) не отображается. Это связано с загрузкой карты в фоновом режиме до загрузки запроса разрешения местоположения. Конечно, после предоставления разрешения и перезапуска приложения вручную синяя точка становится видимой, поскольку разрешение уже предоставлено.
Я пытаюсь построить свою логику так, чтобы, как только пользователь вошел в систему, он должен был дать разрешение, прежде чем карта загрузится. Таким образом, голубая точка будет включена.
Видимо, это известная ошибка: https://issuetracker.google.com/issues/73122459
И одно из предложений в приведенной выше ссылке - запросить разрешение в Activity перед вызовом setContentView. Я попытался сделать это, но моя Карта все еще загружается в фоновом режиме. Поскольку местоположение является неотъемлемой частью приложения, я подумал, что мог бы открыть экран, который не позволяет отображать карту, которая приводит их к своим настройкам. Затем, когда они вернутся, карта будет видна.
Мне нравится, как это делает LimeBike с прозрачной картой позади, так что вы все еще видите, что там должно быть. Как только вы перейдете к своим настройкам и включите местоположение и возврат, их карта загрузится и появится синяя точка. У кого-нибудь есть опыт внедрения чего-то подобного?