问题描述
我正在申请emm。此应用程序仅将安装在公司的设备中。有什么方法可以通过 DevicePolicyManager 以编程方式授予以下权限。
- android.permission.SYstem_ALERT_WINDOW(通过其他应用显示)
- android.permission.BIND_ACCESSIBILITY_SERVICE(无障碍服务)
- android.permission.REQUEST_IGnorE_BATTERY_OPTIMIZATIONS(忽略电池优化)
我想通过 DevicePolicyManager 授予上述权限,因为我的应用是系统所有者应用。但是,我无法通过 devicePolicyManager.setPermissionGrantState 授予它们。正如我还尝试过 devicePolicyManager.setPermittedAccessibilityServices 通过编程方式授予 ACCESSIBILY_SERVICE 一样,但这也不起作用。因此,有什么方法可以让我以编程方式授予所有权限,而无需导航到该屏幕并手动打开。或者是否有一种方法使用户无论如何都无法禁用上述功能。就像我通过 DevicePolicyManager 启用位置和其他权限时,用户无法将其关闭。
解决方法
似乎指示您可以创建一个将自动授予权限的策略。
我确实看到了: PERMISSION_POLICY_AUTO_GRANT
权限策略,始终向运行时权限授予新的权限请求。已经授予或拒绝的权限不受此影响。
和
PERMISSION_GRANT_STATE_GRANTED
运行时权限状态:将权限授予应用程序,并且用户无法通过UI管理权限。
听起来像您想要的。