如何检测Android是否具有完整的USB支持?

Vio*_*ffe 3 usb android usb-otg

我的应用程序用于UsbManager与USB摄像头通信.某些设备没有USB支持.这些返回null(UsbManager)context.getSystemService( Context.USB_SERVICE ),否则将抛出一个NoSuchMethodError枚举设备时例外.我可以检测到这两个并正确显示消息.不幸的是,一些没有检测到USB设备的机器人也没有引起这些问题.他们只返回一个空的USB设备列表.如何才能正确检测到该系统不支持USB OTG?

Com*_*are 7

确定设备是否具有USB主机功能的官方方法是使用相关的系统功能.

理想情况下,<uses-feature>在清单中添加一个元素,表明您对该android.hardware.usb.host功能感兴趣.如果您不是绝对需要该功能,请添加android:required="false"为属性.

如果你去用android:required="false",你要确定设备是否在运行时,使用一个USB主机PackageManager,hasSystemFeature()FEATURE_USB_HOST.FEATURE_USB_HOST被定义为与在<uses-feature>(android.hardware.usb.host)中使用的字符串相同的字符串.