Невозможно получить настройки местоположения как ДОСТУПНЫЕ, если приложения FakeGPS включены

#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 с помощью любого из них.

Кроме того, это начало происходить недавно. Пару месяцев назад все работало нормально.