2017-04-03 121 views
0

我正在開發一個完全基於geofence的Android應用程序。Android:禁用geofence的模擬位置

概念:我的地理圍欄的基本概念是用戶可以玩特定地理位置的遊戲。

問題:一切正常,但我從here下載了FakeGPS應用程序。我在家裏,我從我可以玩遊戲的地方設置了我想要的位置。我的應用程序檢測到地理位置,我可以在家中玩這個遊戲。實際上它只能用於地理位置的遊戲。

解決方案:我已檢查該位置是從MockProvider或不給予代碼來對GeofenceIntentService類。

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

但它不是一個可靠的解決方案。我沒有得到每一次準確的結果。

我檢查了LocationAssistance服務,但無論如何它無法幫助我geofence。

目標:我想爲我的應用程序禁用模擬位置或區分位置是真實還是模擬。

回答

0

您可能只想檢查是否啓用了模擬位置設置。下面是一個SO的答案,或者你可以使用下面的代碼,它來自同一個答案。

https://stackoverflow.com/a/16776891/5318240

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; 
}