Android - GATT Server持续发布广告

时间:2015-12-23 12:57:04

标签: android bluetooth-lowenergy gatt

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

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

我无法理解。如果连接了两台设备,服务器不需要传输广告包以保持连接...这很奇怪。

我使用的是SDK版本23

2 个答案:

答案 0 :(得分:0)

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

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

建立连接后,保持连接活动的是较低层的任务。您无需使用API​​执行任何操作。如果设备连接,则连接可能不稳定,以防根据芯片的能力同时进行通告。

答案 1 :(得分:0)

SELECT * FROM table WHERE date_colunm between ( CASE WHEN DAYOFWEEK(curdate()) > 4 THEN DATE_SUB(NOW(), INTERVAL (7-DAYOFWEEK(curdate())) DAY) ELSE ( CASE WHEN DAYOFWEEK(curdate()) < 4 THEN DATE_ADD(NOW(), INTERVAL (4-DAYOFWEEK(curdate())) DAY) ELSE curdate() END ) END ) as date AND DATE_ADD ( ( CASE WHEN DAYOFWEEK(curdate()) > 4 THEN DATE_SUB(NOW(), INTERVAL (7-DAYOFWEEK(curdate())) DAY) ELSE ( CASE WHEN DAYOFWEEK(curdate()) < 4 THEN DATE_ADD(NOW(), INTERVAL (4-DAYOFWEEK(curdate())) DAY) ELSE curdate() END ) END ) as date, INTERVAL 6 DAY ) 收到STATE_CONNECTED之后,在停止投放广告之前,请运行GattServerCallback告诉傻瓜Android“嘿,我想让这个连接保持活力!”!