Android-连接到蓝牙模块

时间:2019-04-04 11:39:18

标签: java android bluetooth

我必须开发一个Android应用程序以连接到连接到板上的蓝牙模块。我的目标是向此板发送和接收数据。

我目前能够在手机上启用蓝牙,以与蓝牙模块配对,但是我不知道如何连接以及向该模块发送/接收数据。

大多数示例说明了如何创建服务器和客户端以通过套接字进行通信。对我来说这是个好方法吗?如此处所述:https://developer.android.com/guide/topics/connectivity/bluetooth.html#java

2 个答案:

答案 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