import android.hardware.usb.UsbDevice; //导入方法依赖的package包/类
public void checkDevice(UsbDevice device){
String deviceName = device.getDeviceName();
int deviceId = device.getDeviceId();
int deviceVID = device.getVendorId();
int devicePID = device.getProductId();
int type = 0;
if(DEBUG) {
Log.d(TAG, "-------------------");
Log.d(TAG, "[UsbSerial] Found usb device");
Log.d(TAG, "-------------------");
Log.d(TAG, "DeviceName:" + deviceName);
Log.d(TAG, "deviceId:" + deviceId);
Log.d(TAG, "deviceVID:" + deviceVID);
Log.d(TAG, "devicePID:" + devicePID);
Log.d(TAG, "-------------------");
}
// Arduino
if (deviceVID == FaBoUsbConst.ARDUINO_UNO_VID && devicePID == FaBoUsbConst.ARDUINO_UNO_PID) {
deviceType = FaBoUsbConst.TYPE_ARDUINO_UNO;
} else if (deviceVID == FaBoUsbConst.ARDUINO_CC_UNO_VID && devicePID == FaBoUsbConst.ARDUINO_CC_UNO_PID) {
deviceType = FaBoUsbConst.TYPE_ARDUINO_CC_UNO;
} else if (deviceVID == FaBoUsbConst.ARDUINO_LEONARDO_VID && devicePID == FaBoUsbConst.ARDUINO_LEONARDO_PID) {
deviceType = FaBoUsbConst.TYPE_ARDUINO_LEONARDO;
} else if (deviceVID == FaBoUsbConst.GENUINO_UNO_VID && devicePID == FaBoUsbConst.GENUINO_UNO_PID) {
deviceType = FaBoUsbConst.TYPE_GENUINO_UNO;
} else if (deviceVID == FaBoUsbConst.G27_VID && devicePID == FaBoUsbConst.G27_PID) {
deviceType = FaBoUsbConst.TYPE_G27;
} else {
listener.onFind(device, FaBoUsbConst.TYPE_UNSUPPORTED);
return;
}
Log.i(TAG, "mUsbManager.hasPermission(device):" + mUsbManager.hasPermission(device));
if(!mUsbManager.hasPermission(device)) {
if(!this.checkingFlag) {
this.checkingFlag = true;
PendingIntent mPermissionIntent = PendingIntent.getBroadcast(this.mContext, 0, new Intent(ACTION_USB_PERMISSION), 0);
mUsbManager.requestPermission(device, mPermissionIntent);
}
} else {
this.mDevice = device;
listener.onFind(device, deviceType);
}
}