#android #android-location #android-gps #android-fusedlocation
#Android #android-местоположение #android-gps #android-fusedlocation
Вопрос:
В моем приложении мне нужно проверить, включил ли пользователь настройку местоположения или нет, прежде чем запрашивать обновления местоположения. То, как я это делаю, точно так же, как в официальной документации: https://developer.android.com/training/location/change-location-settings
val locationSettingsResult = LocationServices
.getSettingsClient(application)
.checkLocationSettings(locationSettingsRequest)
locationSettingsResult.addOnSuccessListener {
buttonLocationUpdates.text = "Location Settings Enabled"
}
locationSettingsResult.addOnFailureListener { exception ->
when (exception) {
is ResolvableApiException -> {
buttonLocationUpdates.text = "Resolution Required"
}
}
}
}
Я могу получить успешный обратный вызов от служб определения местоположения, если местоположение включено. Но если я включу приложение FakeGPS (сохраняя местоположение включенным), в моем приложении ВСЕГДА срабатывает блок сбоев. Я ожидаю, что в моем приложении будет возвращен успешный обратный вызов, даже если включен FakeGPS, поскольку я не отключил свои службы определения местоположения.
Это воспроизводимо на 100% на Samsun S10, а также на нескольких других телефонах OnePlus, которые я пробовал. Тем не менее, он работает должным образом на некоторых других телефонах и запускает блокировку успеха.
Кто-нибудь сталкивался с подобной проблемой раньше? Какое-либо исправление, которое сработало? Я пробовал использовать несколько приложений FakeGPS, но то же самое происходит в моем приложении, когда я включаю FakeGPS с помощью любого из них.
Кроме того, это начало происходить недавно. Пару месяцев назад все работало нормально.