我正在尝试自动授予我的应用程序一些运行时权限,其中包括 ACCESS_FINE_LOCATION、READ_PHONE_STATE 以及 ACTION_MANAGE_OVERLAY_PERMISSION。请注意,这至少需要我拥有的设备管理员访问权限。
虽然前两个通过
dpm.setPermissionGrantState(componentName, "com.my.app", Manifest.permission.READ_PHONE_STATE, DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
dpm.setPermissionGrantState(componentName, "com.my.app", Manifest.permission.ACCESS_FINE_LOCATION, DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
ACTION_MANAGE_OVERLAY_PERMISSION 根本不起作用。我相信这可能是因为它不是 Manifest.permission 的一部分,而是 android.settings.action.MANAGE_OVERLAY_PERMISSION 的一部分。但是,它仍然是我希望自动获得的许可。
编辑:虽然似乎此权限会自动授予任何请求它的应用程序,但这仅适用于通过 Playstore 分发的应用程序。不幸的是,我的应用程序不是以这种方式分发的。