【问题标题】:Android - GATT Server advertise continuoslyAndroid - GATT Server 持续发布广告
【发布时间】:2015-12-23 12:57:03
【问题描述】:

我开发了两个同时实现 GATT 角色的应用程序:服务器和客户端。 在我的例子中,GATT 服务器也是 GAP 外围设备,而 GATT 客户端是 GAP 中心。

我可以连接/断开客户端与服务器的连接,但是当我试图在客户端连接到服务器的那一刻停止广告时,我发现了一些问题。在这种情况下,连接断开。

我无法理解。如果连接了两个设备,服务器应该不需要发送广告包来保持连接......这很奇怪。

我使用的是 SDK 版本 23

【问题讨论】:

    标签: android bluetooth-lowenergy gatt


    【解决方案1】:

    在您的GattServerCallback 中收到STATE_CONNECTED 后,在停止广告之前,运行mGattServer.connect(device, false); 告诉傻瓜Android“嘿,我想保持此连接有效!”!

    【讨论】:

      【解决方案2】:

      根据 BLE 规范,以下是允许的:处于连接状态的设备可以同时具有主从角色。主设备和从设备可能有多个连接。唯一的限制如下:两个 BLE 设备不能同时作为彼此的主从设备,因为 两个 BLE 设备一次只能有一个连接。

      虽然 BLE 规范规定了这些规则,但限制同时发生的连接数量和其他 BLE 事件数量的是设备中的 BLE 芯片。如果您在 BLE 上看到意外行为,我建议您使用具有不同 BLE 芯片的不同设备尝试相同的操作。

      连接建立后,下层的任务是保持连接处于活动状态。您无需使用 API 执行任何操作。如果设备处于连接状态,则连接可能不稳定,以防同时广告,具体取决于芯片的能力。

      【讨论】:

      • 感谢您的回复。我同意保持连接活动不是应用程序的任务,但是如果我在建立连接时尝试停止广告,设备会自动断开连接。我会停止广告以阻止其他设备连接到我的 GATT 服务器,最重要的是减少功耗。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 2011-09-18
      • 2022-01-20
      相关资源
      最近更新 更多