device owner可以使用runtime permissions将DevicePolicyManager.setPermissionGrantState()授予第三方应用程序,以避免用户提示。
但是设备所有者还可以通过任何方式授予USB permissions,以便该应用无需用户提示即可访问插入的USB设备吗?
注意:我正在寻找在非root用户和非自定义Android系统上运行的解决方案,该设备所有者应用是使用Android Enterprise provisioning methods设置的。
答案 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)