0

我正在制作 EMM 应用程序。此应用程序将仅安装在公司的设备中。有没有办法通过DevicePolicyManager以编程方式授予以下权限。

  1. android.permission.SYSTEM_ALERT_WINDOW(显示在其他应用上)
  2. android.permission.BIND_ACCESSIBILITY_SERVICE(无障碍服务)
  3. android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS(忽略电池优化)

我想通过DevicePolicyManager授予上述权限,因为我的应用是系统所有者应用。但是,我不能通过devicePolicyManager.setPermissionGrantState授予他们。因为我也尝试过devicePolicyManager.setPermittedAccessibilityServices以编程方式授予ACCESSIBILY_SERVICE,但它也没有奏效。那么,有什么方法可以让我以编程方式授予所有权限,而无需导航到该屏幕并手动打开。或者有没有办法让用户无论如何都无法禁用上述功能。就像我通过DevicePolicyManager启用位置和其他权限时,用户无法将其关闭。

4

1 回答 1

2

所以审查:https ://developers.google.com/android/work/requirements#4.2.-runtime-permission-grant-state-management_1

https://developers.google.com/android/management/reference/rest/v1/enterprises.policies#permissionpolicy

似乎表明您可以创建一个自动授予权限的策略。

我确实看到了: PERMISSION_POLICY_AUTO_GRANT

始终授予运行时权限的新权限请求的权限策略。已授予或拒绝的权限不受此影响。

PERMISSION_GRANT_STATE_GRANTED

运行时权限状态:权限已授予应用,用户无法通过 UI 管理权限。

这听起来像你想要的。

于 2020-11-06T07:12:42.850 回答