【发布时间】:2013-03-24 13:20:13
【问题描述】:
我知道从 Android 3.1 开始就支持它,我的意思是“如何检查硬件支持”
【问题讨论】:
-
很好奇您是否发现了解决方案。在论坛中搜索它并没有太多运气。对于想要了解的 SDK 的一部分有这个想法,但如果应用程序缺乏该功能,可能不希望在商店中排除该应用程序。
标签: android usb accessory usb-otg
我知道从 Android 3.1 开始就支持它,我的意思是“如何检查硬件支持”
【问题讨论】:
标签: android usb accessory usb-otg
见:http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_USB_HOST
context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_USB_HOST);
【讨论】:
ANDROID_FEATURE_HARDWARE_USB_HOST 一无所知
我有同样的问题,经过一番谷歌搜索后,我发现了这个: http://android.serverbox.ch/?p=549
总而言之,您的应用需要使用 UsbManager 系统服务并通过连接的 USB 设备进行枚举。
mUsbManager = (UsbManager) mApplicationContext.getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> devlist = mUsbManager.getDeviceList();
Iterator<UsbDevice> deviter = devlist.values().iterator();
while (deviter.hasNext()) {
UsbDevice d = deviter.next();
if (mUsbManager.hasPermission(d)) {
UsbInterface usbIf = mDevice.getInterface(1);
for (int i = 0; i < usbIf.getEndpointCount(); i++) {
if (usbIf.getEndpoint(i).getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
//...
}
}
}
}
【讨论】: