去除USB权限弹窗
条评论在访问一个插入到Android系统的USB设备的时候往往是需要权限的,此时系统会弹出询问权限的对话框,而我们此时希望让它默认允许访问USB设备并且不希望用户看到这个对话框。
我们在获取UsbManager和UsbDevice/UsbAcessory之后,首先需要检查是否对这个USB设备/附件有操作的权限,如果没有权限,则需要向系统申请(系统会弹出询问权限的对话框),此时需要注册一个广播接收器用来接收用户的选择。
1 | // 检查是否有操作权限 |
下面是我们定义的广播接收器:
1 | // 定义的广播接收器 |
去除USB权限弹窗方法
在这个过程中,系统会弹出询问权限的对话框,而我们现在不希望用户看到这个界面。
进入系统源码,找到文件
/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
找到其中的 onCreate() 方法,替换
1 | setupAlert(); |
为
1 | mPermissionGranted = true; |
这样就不会弹窗了,并且会允许给设备操作权限。
当然我们也可以指定只有我们自己的APP不需要弹窗,只需要加一层过滤条件即可:
1 | // add permission for our packages! |
当然也可以根据设备的VID、PID、设备名称等信息进行过滤(省略)。
// 更直接的方法
frameworks/base/core/res/res/values/config.xml
1 | <!-- If true, then we do not ask user for permission for apps to connect to USB devices. |
本文标题:去除USB权限弹窗
文章作者:xmaihh
发布时间:2018-06-26
最后更新:2018-06-26
原始链接:https://xmaihh.github.io/blog/2018/06/26/qu-chu-usb-quan-xian-dan-chuang/
版权声明:采用[CC BY-NC-SA 4.0许可协议]进行许可
分享