我必须开发一个Android应用程序以连接到连接到板上的蓝牙模块。我的目标是向此板发送和接收数据。
我目前能够在手机上启用蓝牙,以与蓝牙模块配对,但是我不知道如何连接以及向该模块发送/接收数据。
大多数示例说明了如何创建服务器和客户端以通过套接字进行通信。对我来说这是个好方法吗?如此处所述:https://developer.android.com/guide/topics/connectivity/bluetooth.html#java
答案 0 :(得分:0)
按照示例中的步骤进行操作:https://developer.android.com/guide/topics/connectivity/bluetooth.html#example_1
请注意,您可能需要知道模块提供的哪种服务 /配置文件。通用模块/设备通常使用串行端口配置文件(SPP)。
您使用createInsecureRfcommSocketToServiceRecord()
或createRfcommSocketToServiceRecord()
进行连接。
您需要哪个UUID取决于模块提供的实际服务。有关SPP,请参见How to find the UUID of serial port Bluetooth device?:
SPP的短16位UUID是
0x1101
完整的UUID是
"00001101-0000-1000-8000-00805f9b34fb"
因此,在Android上,您将使用
final UUID SPP_SERVICE_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
final BluetoothSocket socket = device.createRfcommSocketToServiceRecord( SPP_SERVICE_UUID );
socket.connect();
final InputStream is = socket.getInputStream();
final OutputStream os = socket.getOutputStream();
// Send data to output stream and/or receive data from input stream
// ...
socket.close(); // Disconnect
答案 1 :(得分:0)
以下是一种方法:
创建每次通信时进行通信的服务类
连接到该设备。
通过广播更新将该服务注册到您的主要活动中。
然后扫描您的蓝牙设备(在验证权限之后)并连接它,
请注意,连接代码必须在您的服务类中(与设备的所有通信都是通过服务类进行的。)
这里附上由Nordic Semiconductor创建的使用BLE的示例 Click Here