我知道在Android中判断一个位置是否为虚假点的推荐方法类似于以下代码:
boolean isMock = false;
if (android.os.Build.VERSION.SDK_INT >= 18) {
isMock = location.isFromMockProvider();
} else { // Old Android versions (<6)
isMock = !Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0");
}
因此,对于当前的Android系统,我必须请求位置权限才能知道是否为模拟位置。但是,如果我可以读取“选择模拟位置应用程序”,我认为这是不必要的。
此外,如果您想显示警示消息,您可以自定义此消息。例如:您可以说:“请删除com.lexa.fakegps应用程序”。当用户单击“接受”时,您可以重定向到下一个链接:https://play.google.com/store/apps/details?id=com.lexa.fakegps 此外,有一些虚假的GPS应用程序会在isFromMockProvider方法中返回false。此外,您可以对应用程序进行统计,以了解您的用户更多使用情况。
最后,我不明白为什么您可以读取开发人员设置的每个设置,除了“选择模拟位置应用程序”:
https://developer.android.com/reference/android/provider/Settings
有没有解决方案?还是这只是一个愚蠢的不可能的事情?