提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
在进行carplay开发的过程中,会需要usb if的验证,此时验证就需要识别usb信息,从而弹出提醒,本文讲解下usb if验证中提醒”不支持的设备“
提示:以下是本篇文章正文内容,下面案例可供参考
一、USB IF是什么?
USB Implementers Forum (USB-IF)是一个致力于推广并发展Universal Serial Bus 技术性的非营利性组织,USB 组织提供了标准的传输接口规格,让计算机与外围设备间的连接轻松许多。一般应用到USB 的信息产品包括了打印机、键盘、屏幕、网络装置、扫描仪等,USB IF本身是个自愿性的标志(logo)认证。
二、使用步骤
1.接收设备挂载广播
在AndroidManifest.xml中注册广播
代码如下(示例):
<receiver android:name=".BroadcastActionReceiver">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
</receiver>
2.广播处理
onReceive中进行代码处理
代码如下(示例):
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "usb if onReceive action" + action);
if (action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) {
UsbDevice usbDevice = (UsbDevice) intent.getExtras().get("device");
int count = usbDevice.getInterfaceCount();
Log.d(TAG, "usb if count " + count);
for (int i = 0; i < count; i++) {
UsbInterface intf = usbDevice.getInterface(i);
int usbConstant = intf.getInterfaceClass();
Log.d(TAG, "usb if usbConstant " + usbConstant);
if (usbConstant == UsbConstants.USB_CLASS_PER_INTERFACE
|| usbConstant == UsbConstants.USB_CLASS_HID
|| usbConstant == UsbConstants.USB_CLASS_AUDIO
|| usbConstant == UsbConstants.USB_CLASS_COMM
|| usbConstant == 10 || usbConstant == 14 || usbConstant == 254 || usbConstant == 255) {
Toast.makeText(context, R.string.usb_unsupport, Toast.LENGTH_LONG).show();
}
}
}
}