USB HOST模式开发下可能会遇到这个问题。
第一步是在AndroidManifest.xml文件中修改,主意下面红色字体......
一般调用的activity都是Main和Lanunch入口,加入上面的action后,在SDK中以Run As Android Application时,仅执行安装动作,不会自动调用到该Activity了,需要自己点安装图标运行apk了,不知道算不算问题。这个不管它了。
接下来还有一个@xml/device_filter需要自己创建,xml文件夹需要在res目录下,device_filter.xml在xml下。这个名字一致即可,可以自己定义名称。device_filter.xml的内容如下:<?xml version="1.0"encoding="utf-8"?>
这里usb-device应该是不能改的关键字,后面的参数是用来过滤设备的,如果你只想检查某一个设备,就采用上面的格式,如果是想检查多个或不限定硬件,可以指定一个甚至一个参数都没有,然后在代码中去枚举设备,这里先略过。
指定设备的话,关键是我红色标记出来的两个参数,USB设备都有这两个属性,怎么知道这两个值呢?在windows中,可以通过设备管理器的通用串行总线控制器找到这个USB设备(不知道哪个?插拔一下看看吧),然后在属性-->详细信息中选择硬件ID,在值的区域可以看到USB\VID_AAAA&PID_BBBB。这个AAAA就是vendor-id,BBBB就是product-id,但要注意,你这里看到的是十六进制的值,写入XML中时一定要转成十进制才行。
如果是linux系统,在终端命令行输入lsusb,找到我们需要的设备(同理,不知道哪个插拔一下,运行两次lsusb)
b074@gliethttp:~$ lsusb
Bus 001 Device 001: ID AAAA:BBBB ......
其中AAAA就是vendor-id,BBBB就是product-id,同样这里也是十六进制的,注意转换。
然后,发布APK,到手机上测试一下吧。