我正在尝试连接到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集成。
答案 0 :(得分:0)
如果您有原始蓝牙套接字且已连接,为什么不在代码中手动处理数据格式化/转换并将其发送到没有串行流的另一方? Android OS AFAIK支持有限数量的蓝牙配置文件。