Android: отключить макет местоположения для геозоны

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

Концепция: Моя основная концепция геозоны заключается в том, что пользователь может играть в игры для определенного географического местоположения.

Проблема: все работает нормально, но я скачал приложение FakeGPS отсюда. Я был дома, и я установил желаемое место, где я могу играть в игру. Мое приложение обнаружило это географическое местоположение, и я мог играть в эту игру из своего дома. На самом деле он должен был играть в эту игру только ради геолокации.

Решение: я проверил, что местоположение поступает от MockProvider или нет на GeofenceIntentService Класс по заданному коду.

boolean isMockLcoation = geofencingEvent.getTriggeringLocation().isFromMockProvider();

Но это не надежное решение. Я не получаю каждый раз точный результат.

я проверил LocationAssistance обслуживание, но в любом случае это не могло помочь мне в геозоне.

Цель: я хочу либо отключить фиктивное местоположение для моего приложения, либо определить, является ли местоположение истинным или фиктивным.

1 ответ

Вы можете просто проверить, включена ли настройка фиктивного местоположения. Вот SO ответ только для этого, или вы можете просто использовать код ниже, который был из того же ответа.

/questions/30380725/otklyuchit-proverit-na-lozhnoe-mestopolozhenie-predotvratit-poddelku-gps/30380730#30380730

public static boolean isMockSettingsON(Context context) {
    // returns true if mock location enabled, false if not enabled.
    if (Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
        return false;
    else
        return true;
}
Другие вопросы по тегам