我们可以连接多个设备吗?谁可以分享我的代码!这个问题困扰了我很长一段时间!谢谢!Android蓝牙API连接到多个设备
回答
是的,您可以设置多个蓝牙连接(至少是RFCOMM连接)。只需使用其他线程的给你连接,它会正常工作(我猜) 参见:http://developer.android.com/resources/samples/BluetoothChat/index.html
编辑,评论布局是不可读: 在connectThread功能,更改:
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
到:
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);
像巴里说的,你可以连接到多个设备。只需为每个连接创建一个新线程。你需要列出你正在跟踪的'ConnectThread'和'ConnectedThread'。所以你只需要适应多线程(当然,实现选择多个设备的能力)。 我已经这样做了,并不太难。
如果你想连接到一个设备,然后连接到另一个(使用原始菜单一个接一个),那么你可能还有更多的工作要做。
为了建立一个多连接,你必须为你想连接的每一个设备制作单独的线程。每个线程都有分开的方法来读取和写入数据到远程设备。
看到此链接
我要说的是,代码是没有问题的。正确的实施方式是管理每个连接的线程,但是我发现您可以同时连接的设备数量基于手机的蓝牙实施而受到限制。蓝牙规格状态7个设备可以连接,但是我发现Android手机只能处理1个蓝牙连接,而其他人可以处理6个。如果Android开发团队的成员可以在这里深入了解,它将确实有助于蓝牙开发社区。
我只是浪费了很多时间才发现Nexus 7只能连接1个BT设备,但Nexus 10可以连接多个同步设备。 – BitBank 2012-12-18 07:03:25
严重的是,我在Nexus 7上做了这样的工作也浪费了时间...... – 2014-07-24 08:14:07
@SalmanKhakwani,你是怎么知道有多少BT设备可以连接到Nexus 7的? – ymerdrengene 2018-02-07 15:56:05
是在蓝牙服务器套接字连接多个设备在可以试试这个lib
- 1. Android蓝牙API同时连接到多个设备
- 2. 在Android中将多个设备连接到蓝牙
- 3. Android - 连接到多个蓝牙设备无需配对
- 4. Android蓝牙连接与串口设备
- 5. Android程序连接蓝牙设备
- 6. 无法连接2设备蓝牙android
- 7. Android - 蓝牙设备连接广播
- 8. Android上的蓝牙 - 可以同时连接多个蓝牙设备吗?
- 9. 试图通过蓝牙LE连接多个设备到Android设备
- 10. 从Android设备连接到嵌入式蓝牙设备
- 11. 列出并连接到蓝牙设备
- 12. 无法连接到蓝牙设备
- 13. IPhone蓝牙连接到非IOS设备
- 14. 蓝牙连接两个设备(流)
- 15. 连接到具有蓝牙地址的蓝牙设备
- 16. 连接到Xcode中的多个蓝牙LE设备
- 17. 连接Android设备到多个蓝牙系列嵌入式同行
- 18. 多个蓝牙连接
- 19. 将蓝牙设备连接到未知设备
- 20. 无法连接蓝牙设备
- 21. 蓝牙自动连接配对设备
- 22. 使用Android/Java连接到蓝牙设备
- 23. 无法蓝牙键盘连接到Android设备
- 24. 将蓝牙从Android连接到计算机(配对设备)
- 25. Android蓝牙开发 - 连接到未配对设备
- 26. 在Android 2.1中连接到配对的蓝牙设备(BluetoothSocket)
- 27. 无法重新连接到蓝牙设备后BluetoothGatt.disconnect()android
- 28. Android:确定蓝牙是否连接到任何设备
- 29. OBDSim在Windows 8.1上通过蓝牙连接到Android设备
- 30. Android:我如何连接到隐藏的蓝牙设备?
这个样品不能连接多个设备,当我尝试连接的第三装置,它将打印IO异常:服务discoery – user545755 2010-12-17 12:57:07
嗯,和当您尝试更改时: tmp = device.createRfcommSocketToServiceRecord(MY_UUID); 收件人: 方法m = device.getClass()。getMethod(“createRfcommSocket”,new Class [] {int.class}); tmp =(BluetoothSocket)m.invoke(device,1); (使用正确的尝试/捕获) 你还会得到那个错误吗? (请参阅答案的可读代码..) – Barryvdh 2010-12-17 13:33:16
感谢您的帮助,但它会打印此异常: – user545755 2010-12-17 16:04:03