我的应用程序用于UsbManager
与 USB 摄像头通信。某些设备不支持 USB。这些将返回null
for (UsbManager)context.getSystemService( Context.USB_SERVICE )
,或者NoSuchMethodError
在枚举设备时抛出异常。我可以检测到两者并正确显示消息。不幸的是,一些不检测 USB 设备的 Android 不会导致这些问题。他们只是返回一个空的 USB 设备列表。如何正确检测到此系统不支持 USB OTG?
问问题
2300 次
2 回答
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
于 2014-05-29T13:33:00.960 回答
0
public static boolean getUsbConnection(Context context) {
intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE"));
return intent.getExtras().getBoolean("connected");
}
于 2014-05-29T13:21:50.607 回答