我是蓝牙新手,但已经在连接到 BLE 外围设备以将数据写入特征的 Android 客户端上工作了一个月左右。
我的 BLE 外围设备是一个 nrf52832(北欧)设备,我已经加载了 BLE_SM(安全管理器)示例项目,以便我可以使用绑定/配对进行安全通信。
我的 Android 代码与外围设备成功配对/绑定,但据我所知,外围设备现在停止了广告。我不确定这是正常的还是因为我收到了 REMOTE_USER_TERMINATED_CONNECTION 类型的 gap.onDisconnection 事件。
不管我是绑定的,所以你会认为我现在不需要扫描设备并且可以调用device.connectGatt()
,但它不起作用,我的回调会收到 GATT STATE_DISCONNECTED 事件。我在另一篇文章中读到了从北欧(教程)粘贴以下内容的文章:
不可能连接到不做广告的外围设备,即使之前知道它的地址。这是因为外围设备只会在发送广告后打开接收器一段时间。该时间用于监听连接请求和扫描请求。
如果这是真的,似乎我将无法停止外围设备的持续广告,如果我试图降低外围设备的功耗,这将无济于事。