通过 BLE 设备发送命令

Posted

技术标签:

【中文标题】通过 BLE 设备发送命令【英文标题】:send command over BLE device 【发布时间】:2015-03-06 16:49:18 【问题描述】:

我正在尝试使用我的 android 手机中的 BLE 配置文件连接到 BC127。我能够搜索 BLE 设备但我不确定如何检索远程 BLE 设备上可用的服务。我看到了几个示例,但都包含服务的 UUID。如何知道服务的 UUID?

【问题讨论】:

【参考方案1】:

搜索BLE设备后,

您可以关注Android开发者“http://developer.android.com/samples/BluetoothLeGatt/project.html”连接设备。

在“BluetoothLeService.java”中,通过gatt.discoverServices()连接设备成功后即可获取服务(可以在onConnectionStateChange中运行)。

会触发onServicesDiscovered()

onServicesDiscovered() 中,尝试gatt.getServices() 来获取服务列表,在每个服务中尝试service.getCharacteristics() 来获取特性列表,在每个特性中,尝试characteristics.getDescriptors() 来获取描述符。

在每个服务、特征和描述符中,使用getUUID() 获取 UUID 信息。

希望对你有用

谢谢, 德文。

【讨论】:

谢谢德文。这就是我所做的但是在logcat中我得到“客户端注册,等待回调”我搜索了这个并得到我们必须为ConnectGatt()创建新线程。我也这样做了,但我不知道出了什么问题 这些是我正在遵循的步骤 1. 搜索 BLE 设备 2. 使用 ConnectGatt() 连接 3. 等待回调调用 OnConnectionStateChanged() 我调用 gatt.getServices() 来探索服务在远程设备上。

以上是关于通过 BLE 设备发送命令的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙 GATT 向 BLE 设备发送数据

Android + ESP32 通过蓝牙 (BLE) 发送数据

修改BLE设备名称

在 ios 中具有相同服务和特性的多个 BLE 设备

移动应用程序可以连接到 BLE 设备并在后台保持连接数小时吗?

iOS 在后台模式下从广告中省略制造商数据