0

我正在开发一个纯粹基于地理围栏的 Android 应用程序。

概念:我对地理围栏的基本概念是用户可以针对特定地理位置玩游戏。

问题:一切正常,但我从这里下载了 FakeGPS 应用程序。我在家,我设置了可以玩游戏的理想位置。我的应用程序已检测到该地理位置,我可以在家中玩该游戏。实际上它应该只为地理位置而玩那个游戏。

解决方案:我已经通过给定的代码检查了位置是否来自MockProvider或不在课堂上。GeofenceIntentService

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

但它不是一个可靠的解决方案。我每次都没有得到准确的结果。

我已经检查过LocationAssistance服务,但无论如何它无法帮助我进行地理围栏。

目标:我想为我的应用程序禁用模拟位置或区分该位置是真实的还是模拟的。

4

1 回答 1

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;
}
于 2017-04-04T18:08:49.640 回答