Settings.Secure.ALLOW_MOCK_LOCATION всегда возвращает 1, даже если в приложении Android 4.2.2 отключено значение макета - PullRequest
0 голосов
/ 21 ноября 2018

Я разрабатываю приложение, которое определяет местоположение, является ложным или нет.Я использовал приведенный ниже код, чтобы обнаружить его:

private void mockLocationStatus(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        if (location.isFromMockProvider())
            obj.IsMockLocation = "true";
        else
            obj.IsMockLocation = "false";
    } else {
        if (isMockSettingsON(context))
            obj.IsMockLocation = "true";
        else
            obj.IsMockLocation = "false";
     }
 }


 public static boolean isMockSettingsON(Context context) {
    if (Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
        return false;
    else
        return true;
}

хорошо, он отлично работает на большинстве моих тестовых устройств от Android 4.2 до систем 8.1, пока один пользователь не сказал, что я не использую какие-либо приложения для определения местоположения ион сказал, что не имеет параметров разработчика в настройках, но он отправил истинный поддельный флаг местоположения на сервер.Версия Android для пользователя - 4.2.2.Могу ли я включить макет местоположение по-другому в настройках?Какой у меня код проблемы?Возможно ли, что фиктивное местоположение отключено в настройках или не включает опции разработчика, но isMockSettinsON возвращает true?

...