在没有用户设置页面的情况下禁用模拟位置
Disable Mock Locations without user settings page
我创建了用于检查 Mock Settings
状态的实现,我想知道,我可以动态禁用 Mock Locations
吗?
如果
dynamically
你的意思是以编程方式(即通过应用程序中的对话框/一段代码),答案是否。模拟位置是开发人员的一项功能,因此要 enable/disable 它们,您 必须 将用户发送到系统的开发人员设置。
在将用户发送到那里之前,您可能想要检测是否实际启用了模拟位置。对于 API 级别 < 18,这是通过 Settings.Secure flag, for >= 18 you can use the newly introduced Location.isFromMockProvider() 完成的。我写了一个小实用程序 class 可以可靠地检测所有最近(非根)Android 设备上的模拟位置:
LocationAssistant - Hassle-free location updates on Android
它处理并封装了大部分位置设置,也可以拒绝模拟位置。也许您会发现 class 对您的用例很方便。
我创建了用于检查 Mock Settings
状态的实现,我想知道,我可以动态禁用 Mock Locations
吗?
如果
dynamically
你的意思是以编程方式(即通过应用程序中的对话框/一段代码),答案是否。模拟位置是开发人员的一项功能,因此要 enable/disable 它们,您 必须 将用户发送到系统的开发人员设置。
在将用户发送到那里之前,您可能想要检测是否实际启用了模拟位置。对于 API 级别 < 18,这是通过 Settings.Secure flag, for >= 18 you can use the newly introduced Location.isFromMockProvider() 完成的。我写了一个小实用程序 class 可以可靠地检测所有最近(非根)Android 设备上的模拟位置:
LocationAssistant - Hassle-free location updates on Android
它处理并封装了大部分位置设置,也可以拒绝模拟位置。也许您会发现 class 对您的用例很方便。