我正在编写一个Android应用程序来与硬件设备通信,这完全不受我的控制.
我的应用程序使用listenUsingRfcommWithServiceRecord和UUID 00001101-0000-1000-8000-00805F9B34FB创建一个侦听套接字.然后它调用该套接字上的accept()来等待远程设备连接,但它永远不会.
我已经与硬件设备的制造商交谈了,他们说他们的设备将"简单地连接到远程设备上的通道1".即它没有进行SDP发现以找出正确的频道号.他们拒绝改变这一点(即使它当然是错误的)
我的问题是有没有办法强制Android使用固定的RFCOMM频道号码?也许使用反射,就像连接到客户端时直接调用createRfcommSocket的技巧一样.
这些 API 存在,但不受支持。如果您仍然感兴趣,请查看android.bluetooth 的 Android 1.5 向后移植源代码。
但请注意,作为不受支持的 API,它们可能会在未来的任何版本中被删除。