BLE GattServices

时间:2013-12-24 17:19:59

标签: android bluetooth-lowenergy gatt

我正在开发一个应用程序,尝试将我的智能手机连接到带有Gatt的BLE设备(它可以是智能手机或BLE设备),只读取一段数据。此数据将动态更改,我希望将此数据保留为服务特征的值。我的主要目的是从客户端读取这些数据。由于我与Gatt联系,我认为唯一的方法是将该数据存储为特征值。

如何从我为BLE设备创建的应用程序中为BLE设备添加服务和特性?我做了一项研究,并从here找到了一些有用的信息。但这有助于您为已连接的设备创建服务。请帮帮我或给我一个主意。非常感谢你

2 个答案:

答案 0 :(得分:3)

在我看来,您要做的是连接到设备并在该远程设备上添加服务。这不是有效的,你将无法创建一个这样做的应用程序。

在BLE中,双方都有一个Gatt服务器。 BluetoothGattService中的addService API调用仅用于向本地Gatt服务器添加服务,而不是远程服务器。

这就是它需要工作的方式:

  • 您的手机被称为中央(或主人),您连接的设备是外围设备(或从属设备)。
  • 双方都可以定义他们的本地Gatt服务器(通常在他们连接之前)。本地Gatt服务器对双方都是强制性的。
  • 如果您可以编写在外围设备上运行的固件,您当然可以创建使您的应用程序正常工作所需的服务和特性(这通常是设备启动时,而不是在连接完成后)
  • 您的手机将连接到外围设备,可以使用Android Gatt客户端读取或写入远程设备上运行的Gatt服务器。然而,结构保持不变。

为了能够更详细地回答有关设置的更多信息,这是必要的。

答案 1 :(得分:2)

Android(5.0之前)并不支持充当外围模式,您可以编写应用程序以充当中央(主)或观察者模式。

自Android 5.0起,您可以使用android.bluetooth.le API和BluetoothGattServer在Android 5.0+设备上使用外围角色。