2

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

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

4

2 回答 2

3

在我看来,您要做的是连接到设备并在该远程设备上添加服务。那不是它有效,您将无法创建执行此操作的应用程序。

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

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

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

为了能够更详细地回答,需要更多关于设置的信息。

于 2014-01-01T21:44:11.853 回答
2

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

从 Android 5.0 开始,您可以使用android.bluetooth.le API 和BluetoothGattServer在您的 Android 5.0+ 设备上采用外围角色。

于 2014-04-28T23:41:13.127 回答