如何选择一个应用程序以在 Marshmallow 上以编程方式允许模拟位置?
Posted
技术标签:
【中文标题】如何选择一个应用程序以在 Marshmallow 上以编程方式允许模拟位置?【英文标题】:How to pick an app to allow mock locations programmatically on Marshmallow? 【发布时间】:2016-12-20 21:34:29 【问题描述】:Marshmallow 之前的“允许模拟位置”选项可以通过编程方式更改(需要 root)
Settings.Secure.putInt(getContentResolver(),Settings.Secure.ALLOW_MOCK_LOCATION, 1);
但现在这个选项是特定于应用程序的,这意味着您必须在开发者选项中选择模拟应用程序。
有没有办法以编程方式更改此设置(将我的应用插入允许列表)?
【问题讨论】:
【参考方案1】:不,没有办法授予设置默认模拟位置应用程序的权限。您最多可以在第一次打开应用程序时向用户显示通知,通过设置向他们提供有关如何完成此操作的说明。
请注意,要执行此操作,用户不需要 root 访问权限,而是需要 developer access。这允许您设置默认的模拟位置应用程序。
即使是市场上最好的模拟位置应用程序也没有默认实现此功能。希望这会有所帮助:)
--编辑--
但是,有一种方法可以让用户更轻松地访问它。您可以使用以下代码将用户指向设置模拟位置应用程序的实际屏幕:
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
这会将用户指向设置模拟位置应用的屏幕。
【讨论】:
首先你让我很难过 :) 但从技术上讲,我们假设应用程序位于根设备的系统分区中。而且我们知道默认的模拟位置应用程序信息存储在某个地方(settings.db?),所以在此之后,我们不是无法设置默认的模拟程序应用程序吗? 将用户转发到开发人员设置是已知的事情,所以在您编辑的答案中没有什么让我感到惊讶,也没有任何事情涉及我在编辑的答案中的评论。以上是关于如何选择一个应用程序以在 Marshmallow 上以编程方式允许模拟位置?的主要内容,如果未能解决你的问题,请参考以下文章
我的应用不会显示在 android.intent.action.VIEW 的选择器对话框中,只有在 Marshmallow 上具有 mime 类型 video/*
如何从 Android Marshmallow 中的服务请求权限
如何以编程方式打开 Android 6.0 (Marshmallow) 上特定应用的权限屏幕?
如何在 Android Marshmallow 平台上高效开发系统应用?