android 解决:默认情况下用于该USB设备 自动获取USB操作权限

很多android 的应用在使用USB设备时,总会遇到一个很烦人的问题。

即每次都会弹出对话框:


每次插入USB设备,都会弹出。每次选上默认情况下使用该USB设备。但总还是会弹出。用户体验很差。

似乎唯一的解决方法就是直接获取Root权限,把App放入系统内置应用中,显然很多情况下是无法实现的。

机缘巧合需要写一个车载USB-GPS的解析器。其中用到USB-GPS。即每次必然弹出对话框,不胜其烦。

查了目前网上全部资料,几乎都是无解。

比如这位仁兄:http://blog.csdn.net/hubbybob1/article/details/50263925

或者这位:https://www.crifan.com/android_try_to_auto_grant_usb_device_operation_permission/

百思不得解,直接解释为无解。或者解释为android系统漏洞。查询全部国外资料,似乎也没有相关资料实现哦。

stackoverflow也是无解,https://stackoverflow.com/questions/12401027/how-can-i-suppress-the-usb-permissions-dialog

哈哈,来个自我自卖自夸。

机缘巧合下,多次尝试,终于实现点击默认即自动获得USB操作权限且不再弹出系统对话框。

废话少说,直接上代码:

第一步:声明权限。相信大家都懂:


第二步:在res中新建xml文件夹,新建device_filter.xml


声明:usb-device

其中vendor-id    以及   product-id   那么这个vendor-id和 product-id如何获取呢?

方法1:http://blog.csdn.net/u010661782/article/details/50749271

方法2:https://www.cnblogs.com/shanyou/archive/2012/11/05/2755957.html

其中product-id和vendor-id,在每款usb芯片组都是一样的。即只要USB驱动不变。那product-id和vendor-id就是通用的。

其中vendor-id = 1659   product-id= 8963 为PL2303驱动的id号。为目前最常见USB驱动。台湾产。

第三步:在application中声明该xml文件。


以上操作后。即可实现点击信任后。不再弹出系统对话框。自动获得USB操作权限。

谢谢各位。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容