Android: отключить макет местоположения для геозоны
Я разрабатываю приложение для Android исключительно на геозоне.
Концепция: Моя основная концепция геозоны заключается в том, что пользователь может играть в игры для определенного географического местоположения.
Проблема: все работает нормально, но я скачал приложение FakeGPS отсюда. Я был дома, и я установил желаемое место, где я могу играть в игру. Мое приложение обнаружило это географическое местоположение, и я мог играть в эту игру из своего дома. На самом деле он должен был играть в эту игру только ради геолокации.
Решение: я проверил, что местоположение поступает от MockProvider или нет на GeofenceIntentService
Класс по заданному коду.
boolean isMockLcoation = geofencingEvent.getTriggeringLocation().isFromMockProvider();
Но это не надежное решение. Я не получаю каждый раз точный результат.
я проверил LocationAssistance
обслуживание, но в любом случае это не могло помочь мне в геозоне.
Цель: я хочу либо отключить фиктивное местоположение для моего приложения, либо определить, является ли местоположение истинным или фиктивным.
1 ответ
Вы можете просто проверить, включена ли настройка фиктивного местоположения. Вот SO ответ только для этого, или вы можете просто использовать код ниже, который был из того же ответа.
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;
}