如何选择一个应用程序,以允许在Marshmallow上以编程方式模拟位置?

bla*_*ara 5 android android-settings android-6.0-marshmallow

在Marshmallow之前"允许模拟位置"选项可以通过编程方式更改(需要root)

Settings.Secure.putInt(getContentResolver(),Settings.Secure.ALLOW_MOCK_LOCATION, 1);
Run Code Online (Sandbox Code Playgroud)

但现在这个选项是特定于应用程序的,意味着您必须在开发人员选项中选择模拟器应用程序.

有没有办法以编程方式更改此设置(将我的应用程序插入允许列表)?

Mic*_*rla 7

没有办法提供设置默认模拟位置应用的访问权限.您可以做的最多是在第一次打开应用程序时向用户显示通知,并通过设置向他们提供有关如何完成此操作的说明.

请注意,对于用户来说,不需要root访问权限,而是开发人员访问权限.这允许您设置默认的模拟位置应用程序.

即使是市场上最好的模拟位置应用程序也没有默认实现.希望这可以帮助 :)

- 编辑 -

但是,thre是一种使用户更容易访问的方法.您可以使用以下代码将用户指向设置模拟位置应用程序的实际屏幕:

startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
Run Code Online (Sandbox Code Playgroud)

这会将用户指向设置模拟位置应用程序的屏幕.