即使模拟设置为 Off,Settings.Secure.ALLOW_MOCK_LOCATION 也始终返回 1
Posted
技术标签:
【中文标题】即使模拟设置为 Off,Settings.Secure.ALLOW_MOCK_LOCATION 也始终返回 1【英文标题】:Settings.Secure.ALLOW_MOCK_LOCATION always returns 1 even mock setting is Off 【发布时间】:2016-09-01 01:50:18 【问题描述】:我正在开发一个应用,如果使用这段代码启用模拟位置设置,用户将无法使用它
if (Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
return false;
else
return true;
嗯,它在我的大多数测试设备(从 KitKat 到 Marshmallow 系统)中运行良好,直到我在这台带有 Marshmallow OS 的设备上尝试了我的应用程序,模拟设置显然是关闭的,但上面的代码一直告诉我模拟设置为ON,这是一个错误吗?还是我在这里遗漏了什么?
【问题讨论】:
【参考方案1】:查看来自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");
这可能对你有帮助
【讨论】:
感谢您的回复,我一直在研究它,我只是很困惑这个简单的代码适用于 2 个三星棉花糖系统,但它不适用于另一个 1 我不明白为什么我需要在清单中添加它,因为我不打算在我的应用程序中使用模拟位置,我只需要检查模拟设置是打开还是关闭,它没有在 1 个关键设备中工作。好吧..我确实尝试添加它,但它告诉我应该只将它放在调试清单中 @Jeff 对不起,我的错 也许这会有所帮助***.com/questions/32668494/…【参考方案2】:根据 android 开发者参考:https://developer.android.com/reference/android/provider/Settings.Secure.html ALLOW_MOCK_LOCATION 现在在 SDK 23 中已弃用。
在棉花糖中,您将获得的默认值始终为 1。
【讨论】:
以上是关于即使模拟设置为 Off,Settings.Secure.ALLOW_MOCK_LOCATION 也始终返回 1的主要内容,如果未能解决你的问题,请参考以下文章
即使设置了模拟,ASP.NET 仍以 ASPNET 的身份访问文件夹