授予USB权限作为设备所有者

时间:2019-05-02 10:35:12

标签: android android-usb android-management-api android-enterprise

device owner可以使用runtime permissionsDevicePolicyManager.setPermissionGrantState()授予第三方应用程序,以避免用户提示。

但是设备所有者还可以通过任何方式授予USB permissions,以便该应用无需用户提示即可访问插入的USB设备吗?

注意:我正在寻找在非root用户和非自定义Android系统上运行的解决方案,该设备所有者应用是使用Android Enterprise provisioning methods设置的。

2 个答案:

答案 0 :(得分:2)

有一个特殊的系统配置来禁用USB权限对话框: https://github.com/aosp-mirror/platform_frameworks_base/blob/8ff4a5a5b510e724b25ac00369696594bb0c9fdc/core/res/res/values/config.xml#L2283

也许您还可以在运行时使用setprop以root特权对其进行更改。

另一种方法是自定义UsbUserSettingsManager类,特别是以下方法:https://android.googlesource.com/platform/frameworks/base.git/+/master/services/usb/java/com/android/server/usb/UsbUserSettingsManager.java#178

我认为,作为设备所有者,您可以完全控制ROM源代码。

答案 1 :(得分:1)

它有点旧,但希望它对 s.o. 有所帮助。别的。 我一直在使用它来授予应用程序权限

public boolean setPermissionGrantState (ComponentName admin, 
                String packageName, 
                String permission, 
                int grantState)

链接:https://developer.android.com/reference/android/app/admin/DevicePolicyManager#setPermissionGrantState(android.content.ComponentName,%20java.lang.String,%20java.lang.String,%20int)