我正在开发一个应用程序,如果使用此代码启用模拟位置设置,用户将无法使用它
if (Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
return false;
else
return true;
在我从KitKat到Marshmallow系统的大多数测试设备中它运行良好,直到我在使用Marshmallow OS的单个设备上尝试我的应用程序,模拟设置显然是OFF,但上面的代码一直告诉我模拟设置为ON,这是一个错误吗?还是我错过了什么?
答案 0 :(得分:6)
从here查看此答案。
boolean isMock = false;
if (android.os.Build.VERSION.SDK_INT >= 18) {
isMock = location.isFromMockProvider();
} else {
isMock = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0");
}
这可能对您有所帮助
答案 1 :(得分:0)
根据android开发人员参考:https://developer.android.com/reference/android/provider/Settings.Secure.html ALLOW_MOCK_LOCATION现已在SDK 23中弃用。
您将获得的默认值在棉花糖中始终为1。