任何人都可以帮我处理这段代码吗?
我想从android传输到USB。我在尝试将数据从我的 android 代码发送到外部 USB 设备时遇到一些技术问题。我有供应商和其他信息;
这是我的设备供应商信息:
<resources>
<usb-device
class="0"
product-id="30209"
protocol="0"
subclass="0"
vendor-id="5263" />
</resources>
String s = "55 AA 81 8 F7 A F5 0";
byte [] bytes = s.getBytes();
connection.bulkTransfer(endpoint, bytes, bytes.length, 0); //do in another thread
这是我的代码:
private void doYourOpenUsbDevice(final UsbDevice usbDevice) {
// now follow line will NOT show: User has not given permission to
// device UsbDevice
final UsbDeviceConnection connection = mUsbManager.openDevice(usbDevice);
// here is your device-
if(usbDevice.getDeviceId()==2002)
{
Thread thread = new Thread(new Runnable() {
public void run() {
//call method to set up device communication
UsbInterface intf = usbDevice.getInterface(0);
connection.claimInterface(intf, false);
//connection settings
int op= connection.controlTransfer(0x40, 0, 0, 0, null, 0, 0);// reset //0x40
int op2= connection.controlTransfer(0x40, 0, 1, 0, null, 0, 0);//clear Rx
int op3= connection.controlTransfer(0x40, 0, 2, 0, null, 0, 0);// clear Tx
int op3b= connection.controlTransfer(0x40, 0x02, 0x0000, 0, null, 0, 0);//control flow
int op4= connection.controlTransfer(0x40, 0x03, 0x001A, 0, null, 0, 0);// baud rate 115200
int op5= connection.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0);//8 bit
int endPts = intf.getEndpointCount();
for(int e = 0; e < endPts; e++){
UsbEndpoint endpoint = intf.getEndpoint(e);
endpoint.getAttributes();
if( endpoint.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK){
if(endpoint.getDirection() == UsbConstants.USB_DIR_IN){
input = endpoint;
Log.d("Endpoint", "Got input");
}else if(endpoint.getDirection() == UsbConstants.USB_DIR_OUT){
output = endpoint;
Log.d("Endpoint", "Got output");
}
}
}
int f = connection.controlTransfer(0x21, 34, 0, 0, null, 0, 0);
int f2 = connection.controlTransfer(0x21, 32, 0, 0, new byte[] { (byte) 0x80,
0x25, 0x00, 0x00, 0x00, 0x00, 0x08 }, 7, 0);
System.out.println(f +" "+ f2 );
}
});
thread.start();
}
}
问题是我有一个 USB 红外线和我的安卓设备。我的安卓设备有 2 个 USB 端口。我想将此字节“55 AA 81 8 F7 A F5 0”发送到红外主机。我知道这有点复杂,但谢谢大家!