我正在开发一个应用程序,它应该通过蓝牙自动连接2个Android设备。假设他们已经配对。这有可能实现吗?如何编程连接2个Android设备与蓝牙?
10
A
回答
18
当然这是可能的。我将在文档中做一个简短的教程:
从BluetoothAdapter开始 - 它是您的蓝牙管理器。
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
如果bluetoothAdapter
为null,则意味着此Android设备不支持蓝牙(它没有蓝牙无线电。虽然我认为这是难得遇到这些设备......)
接下来,确保蓝牙开启:
如果不是,我们开始要求用户启用它的活动。我们假设用户确实启用了(我想你应该检查他是否执行了,在onActivityResult
方法中执行)。我们可以查询配对设备:
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBoundedDevices();
然后遍历它们:for(BluetoothDevice device : pairedDevices)
,找到你要连接到一个。
一旦你找到了一个设备,创建一个套接字连接它:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(YOUR_UUID);
YOUR_UUID是包含您的应用程序的特殊ID的UUID对象。阅读关于它here。
现在,尝试连接(设备你试图连接到必须在监听模式具有相同UUID创建的套接字):
socket.connect();
连接()块你的线程,直到建立连接或者发生错误 - 在这种情况下将引发异常。所以你应该在一个单独的线程上调用connect
。
还有!您已连接到其他设备。现在得到输入和输出流:
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
并且您可以开始发送/接收数据。请记住,这两个操作(发送和接收)都是阻止,所以你应该从不同的线程调用这些。
了解更多关于这一点,并找出如何创建在Bluetooth documentation.
相关问题
- 1. 无法连接2设备蓝牙android
- 2. Android。连接蓝牙设备
- 3. Android蓝牙连接与串口设备
- 4. Android程序连接蓝牙设备
- 5. 以编程方式使用蓝牙连接两个Android设备
- 6. 通过蓝牙以编程方式连接两个Android设备
- 7. Android蓝牙连接另一个蓝牙设备
- 8. 连接到蓝牙设备?
- 9. 如何获取Android设备的蓝牙设备连接状态
- 10. Android - 蓝牙设备连接广播
- 11. Android蓝牙获取连接的设备
- 12. 使用蓝牙连接Android设备?
- 13. 如何连接到蓝牙a2dp设备?
- 14. Android +以编程方式通过蓝牙连接设备
- 15. 无法与远程设备进行蓝牙连接。 android 6.0
- 16. Android 4.3:如何连接到多个蓝牙低功耗设备
- 17. 蓝牙连接两个设备(流)
- 18. iOS蓝牙通知应用程序蓝牙设备连接时
- 19. 可以同时连接2个设备连接Android中的蓝牙吗?
- 20. Android蓝牙接受()/连接()与已配对的设备
- 21. 如何防止android在蓝牙设备连接时选择蓝牙A2DP路由
- 22. Android上的蓝牙 - 如何连接到正确的蓝牙设备?
- 23. 与Android的蓝牙连接
- 24. 如何在android中以编程方式自动连接到蓝牙设备?
- 25. 如何以编程方式检查Android中蓝牙设备的连接状态?
- 26. Android上的蓝牙 - 可以同时连接多个蓝牙设备吗?
- 27. 从Android设备连接到嵌入式蓝牙设备
- 28. 编程的两个设备之间的Android蓝牙连接失败
- 29. 如何在Android中连接蓝牙设备?
- 30. Android:如何找出连接的蓝牙设备的名称?
这是可能的服务器(在这里,我们已经创建了一个客户端),在看看:http://developer.android.com /guide/topics/wireless/bluetooth.html –
缺点是,这样的应用程序,例如即不断寻呼来建立连接,会对电池的使用寿命产生不利影响。不是一个好主意。 –