http://intijk.com/?p=977 从这个博客里学到不少.
本来觉得是一件挺简单的事,但是却整了半天. 记录一下整个过程.
问题还没有完美解决,但是应该OK啦~
http://developer.android.com/guide/topics/connectivity/usb/accessory.html
我的手机是Razr,4.04版本.
首先你需要确定手机是否OK
检查一下手机里是否有这两个文件. (我很诧异,为什么手机里,有权限的声明文件,却没有jar文件.)
/system/framework/com.android.future.usb.accessory.jar
/system/etc/permissions/android.hardware.usb.accessory.xml
usb_accessory下载
这步搞定了,再往下看~.
API level 12 以后,系统已经集成USB控制部分. API level 10(最低),需要导入Jar文件. 而这两个文件的操作不同,就引发了悲剧的发生...
如果你的手机API level 12+.
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);
如果你是使用的导入的Jar文件.
UsbManager manager = UsbManager.getInstance(this); UsbAccessory accessory = UsbManager.getAccessory(intent);
这是清单的样例.
<manifest ...> <uses-feature android:name="android.hardware.usb.accessory" /> <uses-sdk android:minSdkVersion="<version>" /> ... <application> <uses-library android:name="com.android.future.usb.accessory" /> <activity ...> ... <intent-filter> <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/accessory_filter" /> </activity> </application> </manifest>