Android插入USB设备,自动弹出提示运行apk
2013-08-20 17:15
483 查看
原文:http://developer.android.com/guide/topics/connectivity/usb/host.html
USB HOST模式开发下可能会遇到这个问题。
第一步是在AndroidManifest.xml文件中修改,主意下面红色字体
接下来还有一个@xml/device_filter需要自己创建,xml文件夹需要在res目录下,device_filter.xml在xml下。这个名字一致即可,可以自己定义名称。device_filter.xml的内容如下:
指定设备的话,关键是我红色标记出来的两个参数,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,到手机上测试一下吧。
USB HOST模式开发下可能会遇到这个问题。
第一步是在AndroidManifest.xml文件中修改,主意下面红色字体
<manifest ...> <uses-featureandroid:name="android.hardware.usb.host"/> <uses-sdkandroid:minSdkVersion="12"/> ... <application> <activity ...> ... <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter"/> </activity> </application> </manifest>一般调用的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"?> <resources> <usb-device vendor-id="1234"product-id="5678"class="255"subclass="66"protocol="1"/> </resources>这里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,到手机上测试一下吧。
相关文章推荐
- Android插入USB设备,自动弹出提示运行apk
- Android系统插入USB设备自动授权不弹出对话框
- Android【USB名称修改系列】第12项-如何修改MTP在windows弹出的自动播放提示框标题
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- Win7插入USB移动存储设备没反应不弹出自动播放窗口
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- android运行时提示:could not find *.apk
- 转:android中APK开机自动运行
- Android设备运行超过10天凌晨2:59~4:01期间自动重启
- android之apk自动更新采用Notification通知提示并显示下载进度
- 获取 Android 设备上当前运行的应用的 apk
- 获取 Android 设备上当前运行的应用的 apk
- android中usb设备驱动不能自动创建设备节点
- Android蓝牙2.0 4.0 BLE所有示例apk及源码下载及视频 保证能收发十六进制或字符 有自动连接已经配对的设备
- android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误
- android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误
- Android---让你的APK程序开机自动运行