BLE Gatt服务
2013-12-24
2648
我正在开发一个应用程序,尝试使用 Gatt 将我的智能手机连接到 BLE 设备(可以是智能手机或 BLE 设备)并读取一段数据。此数据将动态变化,我想将此数据保留为服务特征的值。我的主要目的是从客户端读取此数据。由于我正在与 Gatt 连接,我认为唯一的方法是将该数据存储为特征的值。
如何从我为 BLE 设备创建的应用程序向 BLE 设备添加服务和特征?我进行了研究并从 此处 找到了一些有用的信息。但这可以帮助您为已连接的设备创建服务。请帮助我或给我一个想法。非常感谢
2个回答
在我看来,您尝试做的是连接到设备并在该远程设备上添加服务。这不起作用,您将无法创建执行此操作的应用程序。
在 BLE 中,双方都有一个 Gatt 服务器。 BluetoothGattService 中的 addService API 调用仅用于将服务添加到本地 Gatt 服务器,而不是远程服务器。
这是它需要的工作方式:
- 您的手机称为中央(或主设备),您要连接的设备是外围设备(或从设备)。
- 双方都可以定义其本地 Gatt 服务器(通常在连接之前)。本地 Gatt 服务器对于双方来说都是必需的。
- 如果您可以编写在外围设备上运行的固件,那么您当然可以创建使应用程序工作所需的服务和特性(同样,这通常是在设备启动时,而不是在建立连接后)
- 您的手机将连接到外围设备,并且可以使用 Android Gatt 客户端从远程设备上运行的 Gatt 服务器读取或写入。但是结构保持不变。
为了能够更详细地回答,需要更多关于设置的信息。
Vegar Westerlund
2014-01-01
Android(5.0 之前的版本)不支持充当外围设备模式,因此您可以编写应用程序以充当中央(主)或观察者模式。
从 Android 5.0 开始,您可以使用 android.bluetooth.le API 以及 BluetoothGattServer 在 Android 5.0 及以上设备上采用外围设备角色。
J Sanchez
2014-04-28