RFID在BluetoothSocket中获得串行连接

时间:2012-03-15 22:52:12

标签: android bluetooth serial-port rfcomm

我正在尝试连接到RFID阅读器设备。我可以通过创建一个BluetoothSocket并在其上调用connect来连接它,如下所示(许多细节省略):

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集成。

1 个答案:

答案 0 :(得分:0)

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