最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【记录】android中想办法实现自动获得usb设备的操作权限

Android crifan 11992浏览 0评论

【问题】

折腾:

【已解决】android程序运行出错:UsbManager(4294): exception in UsbManager.openDevice,java.lang.SecurityException: User has not given permission to device UsbDevice

期间,希望android设备中,自动获得操作usb设备的权限。

不希望弹出对话框让用户点击,才允许有操作权限。

即,不需要用户操心usb操作权限的事情。

【折腾过程】

1.参考:

Android USB Automatically Grant Permission

无解。

2.参考:

How to stop Android asking for permission before permitting access to USB device

去看看:

USB device access pop-up supression?

但是发现:

其解释的内容,就是我之前在:

【已解决】Android设备作为Host希望实现可以检测到USB设备插入

已经知道的的那个

给xml中添加intent-filter的action和meta-data

但是其会存在问题:

静态时,即当app没运行时,插入USB,结果也会导致弹出这个对话框的。

这不是我想要的。

我要实现的是:

app没运行时,插入usb设备,不会弹出这个对话框,不用去烦用户;

app运行时,可以自动获得对应的usb设备的操作权限,无需用户操心权限的事情;

3.而看完了:

USB device access pop-up supression?

的讨论,结果是:

你妹的啊

android系统,必须,至少要有一次,(不论你是用intent-filter还是代码中调用UsbManager.requestPermission)会弹出对话框让用户选择运行程序操作此usb设备的。。

没法消除啊。。。

4.看到android官网文档:

<permission>

猜想:

不知道,是否有类似的permission的配置而使得可以去配置某usb设备的权限

而实现上面的效果:

无需用户操心usb设备的权限。

5.参考:

bypass android usb host permision confirmation dialog

貌似该人即使可以实现所需的效果:

但是也需要额外的类去实现

而且还需要app是system的app,即放在/system/app/的

甚至那些类所调用的api,可能也会和当前android的os的版本有关:版本变化可能导致api变化。。。

(注:

后来看到这人:

绕过android usb主机permision确认对话框

用中文总结了上面的方案。

通过发帖时间去看,十有八九是该中文作者,拷贝了原帖的代码。。。而不是自己原创的。。。。

总之:

还是很麻烦的。

默认的android中,其设计的逻辑中,根本就不支持这类,绕开权限的操作。

所以:

还是放弃此想法吧。。。

 

【总结】

android设计的逻辑中,不支持这类绕开获取操作权限的事情;

即使像通过代码实现绕开的逻辑,也是很复杂,尤其是还有很多前提条件,所以:

暂且只能放弃绕开权限的想法了。。。

转载请注明:在路上 » 【记录】android中想办法实现自动获得usb设备的操作权限

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    hisaishi8年前 (2016-08-05)回复
86 queries in 0.167 seconds, using 22.15MB memory