我正在开发一个检测位置是否为假的应用程序。我使用下面的代码进行检测:
private void mockLocationStatus(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
if (location.isFromMockProvider())
obj.IsMockLocation = "true";
else
obj.IsMockLocation = "false";
} else {
if (isMockSettingsON(context))
obj.IsMockLocation = "true";
else
obj.IsMockLocation = "false";
}
}
public static boolean isMockSettingsON(Context context) {
if (Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
return false;
else
return true;
}
在从Android 4.2到8.1版的大多数测试设备中,它都能正常工作,直到一个用户说我不使用任何模拟位置应用,并且他说设置中没有开发人员选项,但他发送了真实的假位置标记到服务器。用户的Android版本是4.2.2。我可以在设置中以其他方式启用模拟位置吗?我的问题代码是什么?是否可以在设置中关闭模拟位置,或者不启用开发人员选项,但isMockSettinsON
返回true?