Android 6.0 (M) 跳过 Settings.ACTION_MANAGE_WRITE_SETTINGS 与管理员

Android 6.0 (M) skip Settings.ACTION_MANAGE_WRITE_SETTINGS with admin

是否可以通过管理员权限避免运行时权限?

我必须在 Settings.System 中更改一些内容,但不幸的是在 Android M 上,我必须请求用户允许我...

WRITE_SETTINGS 的权限已从 api23 中的用户应用程序(不是系统应用程序)中撤销。通过查看 android 中的源代码,我们可以看到此权限的以下保护级别:

 <permission android:name="android.permission.WRITE_SETTINGS"
    android:label="@string/permlab_writeSettings"
    android:description="@string/permdesc_writeSettings"
    android:protectionLevel="signature|preinstalled|appop|pre23" />

这意味着您可以通过以下任一方式获得此权限: 1.Targetting 清单中的 sdk 低于 23 2. 通过系统签名,通过在系统中预装应用程序(/app或/priv-app)或通过appop获得权限(不相关)。

因此,作为面向 sdk23 的用户应用程序,您无法获得此权限。目标 sdk 22 及更低版本以从清单中获得此权限。它工作正常。