通过Digi Xbee Java Api在Android中使用串行端口ttyUSB0

通过Digi Xbee Java Api在Android中使用串行端口ttyUSB0,java,android,serial-port,xbee,odroid,Java,Android,Serial Port,Xbee,Odroid,我正在Odroid Xu4中制作一个Android应用程序,通过usb串行转换器与Xbee Pro s2相连,cp210x驱动程序使用ttyUBS0端口,但在应用程序内部,它与ttyUBS0断开连接,并使用总线/dev/bus/usb/。。 不,我必须打开串行端口才能访问xbee的Rx/Tx。我现在正在为android使用usb串行接口 但这帮不了什么忙,我的应用程序一打开xbee设备就崩溃了。 这是我的密码 List<UsbSerialDriver> availableDrive

我正在Odroid Xu4中制作一个Android应用程序,通过usb串行转换器与Xbee Pro s2相连,cp210x驱动程序使用ttyUBS0端口,但在应用程序内部,它与ttyUBS0断开连接,并使用总线/dev/bus/usb/。。 不,我必须打开串行端口才能访问xbee的Rx/Tx。我现在正在为android使用usb串行接口

但这帮不了什么忙,我的应用程序一打开xbee设备就崩溃了。 这是我的密码

 List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
    if (availableDrivers.isEmpty()) {
        return;
    }

    UsbSerialDriver driver = availableDrivers.get(0);
    Toast.makeText(this, "connection done" + driver, Toast.LENGTH_LONG).show();
    List<UsbSerialPort> availableports = driver.getPorts();
    for (UsbSerialPort port : availableports) {
        Toast.makeText(this, "port please :" + port.getPortNumber(), Toast.LENGTH_LONG).show();
        UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
        try {
            port.open(connection);
            Toast.makeText(this," yes i m connected to port", Toast.LENGTH_LONG).show();
            port.setParameters(BAUDRATE, 8, 1, 0);
            Toast.makeText(this," baudrate set", Toast.LENGTH_LONG).show();
            PORT = driver.getDevice().toString();
            if (PORT == null) {
                Toast.makeText(this, "not connected",Toast.LENGTH_LONG).show();
            }
            else
            {
                XBeeDevice mydevice = new XBeeDevice(PORT, BAUDRATE);
                Toast.makeText(this, "connected",Toast.LENGTH_LONG).show();
                try {
                    mydevice.open(); //App crashes now :(
                    Toast.makeText(this, "connected woow",Toast.LENGTH_LONG).show();
                } catch (XBeeException e) {
                    e.printStackTrace();
                }
            }


        } catch (IOException e) {
            e.printStackTrace();
        }

    }
List availableDrivers=UsbSerialProber.getDefaultProber().findAllDrivers(管理器);
if(availableDrivers.isEmpty()){
返回;
}
UsbSerialDriver driver=availableDrivers.get(0);
Toast.makeText(此“连接完成”+驱动程序,Toast.LENGTH_LONG.show();
List availableport=driver.getPorts();
用于(UsbSerialPort端口:可用端口){
Toast.makeText(此“端口请:+port.getPortNumber(),Toast.LENGTH_LONG).show();
UsbDeviceConnection=manager.openDevice(driver.getDevice());
试一试{
端口。打开(连接);
Toast.makeText(这是“是的,我已连接到端口”,Toast.LENGTH_LONG.show();
端口设置参数(波特率,8,1,0);
Toast.makeText(这是“波特率集”,Toast.LENGTH_LONG.show();
端口=driver.getDevice().toString();
如果(端口==null){
Toast.makeText(此“未连接”,Toast.LENGTH_LONG).show();
}
其他的
{
XBeedDevice mydevice=新的XBeedDevice(端口,波特率);
Toast.makeText(这个“已连接”,Toast.LENGTH_LONG).show();
试一试{
mydevice.open();//应用程序现在崩溃:(
Toast.makeText(这是“连接的woow”,Toast.LENGTH_LONG).show();
}捕获(XBEEE异常){
e、 printStackTrace();
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
有人能给我指点迷津吗?我是不是在代码里做错了什么?这是我找到的另一个库 这会有帮助吗?

此api根据需要工作,它将找到所有必需的端口。您需要在项目中添加.java文件