2012-03-15 67 views
2

我试图连接到RFID阅读器设备。我能够通过创建的BluetoothSocket,并呼吁将其连接如下面连接到它(许多细节省略):RFID在BluetoothSocket中获得串行连接

public static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID); 

该作品不多预期,并且与设备的连接可以建立。

我的问题是,设备API被设计为与串行端口一起使用。为了使用API​​,我将它传递一个字符串,它看起来像这样:

String uri = "eapi:///com1"; 

Android不出现打开串口达到世界这样。在Linux上我希望能够能够用绳子连接,如:

String uri = "eapi:///dev/ttyS0"; 

通过手机上的/ dev目录展望显示这样的事。此外,当我建立连接时,/ dev中的条目不会改变。这使我相信,Android在连接到蓝牙设备时不会在/ dev中创建串行设备。

如何访问BluetoothSocket用来连接设备的com端口?在android上是否有像com1或/ dev/ttyS0这样的虚拟设备?

使用类RfcommSocket的API的老版本有一个getPort()和getFileDescriptor()方法可能会帮助我。目前的蓝牙套接字似乎隐藏了这些细节。

在此先感谢!

编辑: 事实证明,Android根本不会为串行流创建虚拟设备。相反,我直接将我的客户端代码与bluetoothsocket集成。

回答

0

那么,如果你有原始的蓝牙套接字,并且它已连接,为什么不直接在你的代码中手动处理数据格式化/转换并将它发送给另一方而无需串行流呢? Android OS AFAIK支持有限数量的蓝牙配置文件。