使用USB将Android连接到Rambo

使用USB将Android连接到Rambo,android,usb,arduino,Android,Usb,Arduino,我试着将我的archos钛HD连接到我的RAMBo()。目前,我可以连接到设备,并在中找到USB目录,但当我从连接中读取时,我得到空值。我做错了什么 public void onReceive(Context context, Intent intent) { EditText myfield = (EditText) findViewById(R.id.editText1); String action = intent.getAction();

我试着将我的archos钛HD连接到我的RAMBo()。目前,我可以连接到设备,并在中找到USB目录,但当我从连接中读取时,我得到空值。我做错了什么

public void onReceive(Context context, Intent intent) {
            EditText myfield = (EditText) findViewById(R.id.editText1);
            String action = intent.getAction();
            if (ACTION_USB_PERMISSION.equals(action)) {
                synchronized (this) {
                    UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);

                    if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
                        if(device != null){

                            myfield.setText(myfield.getText()+"start connection");
                            UsbInterface intf = device.getInterface(0);


                            UsbManager mUsbManager=(UsbManager) getSystemService(Context.USB_SERVICE);
                            UsbDeviceConnection connection = mUsbManager.openDevice(device); 

                            if(connection.claimInterface(intf, forceClaim)){


                                for(int i=0;i<intf.getEndpointCount();i++){
                                    UsbEndpoint endpoint = intf.getEndpoint(i); 

                                    if(endpoint.getDirection()== UsbConstants.USB_DIR_IN){
                                        myfield.setText(myfield.getText()+"endpoint zum lesen:"+i);


                                        int ret=connection.bulkTransfer(endpoint, mybytes, 20, TIMEOUT);

                                        myfield.setText(myfield.getText()+"ret"+ret+" "+Arrays.toString(mybytes)+"first read");


                                    }
                                    else if(endpoint.getDirection()==UsbConstants.USB_DIR_OUT){

                                        myfield.setText(myfield.getText()+"endpoint zum schreiben"+i);
                                    }
                                    else{
                                        myfield.setText(myfield.getText()+"irgendein endpoint");

                                    }
                                }
                            }
                            else{

                                myfield.setText(myfield.getText()+"verbindung nicht möglich");
                            }

                          //call method to set up device cmmunication
                       }
                    } 
                    else {
                        myfield.setText("Permission denied");
                        //Log.d(TAG, "permission denied for device " + device);
                    }
                }
            }
        }
    };
public void onReceive(上下文、意图){
EditText myfield=(EditText)findViewById(R.id.editText1);
String action=intent.getAction();
if(动作\u USB\u权限等于(动作)){
已同步(此){
UsbDevice设备=(UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_设备);
if(intent.getBooleanExtra(UsbManager.EXTRA_权限_授予,false)){
如果(设备!=null){
myfield.setText(myfield.getText()+“启动连接”);
UsbInterface intf=device.getInterface(0);
UsbManager mUsbManager=(UsbManager)getSystemService(Context.USB_服务);
usbdeviconnection connection=mUsbManager.openDevice(设备);
if(连接.索赔接口(intf,强制索赔)){

对于(int i=0;iIs您的平板电脑是usb主机还是usb附件?您看过了吗?可能会有帮助。谢谢您的回答。它是一个主机OK,这就是为什么我没有重新整理所有的东西。那时我可能帮不上忙,因为我一直在使用开放附件模式。您的读取方法代码是什么?这只是广播接收器和开放设备(在广播方法中,我将把它放在自己的方法中)。这是readpart:int-ret=connection.bulkTransfer(endpoint,mybytes,20,TIMEOUT);myfield.setText(myfield.getText()+“ret”+ret+“”+Arrays.toString(mybytes)+“first read”);我必须在哪里定义波特率?