我有一个BLE设备,它遵循下一个forkflow:睡眠直到按下按钮(在设备上) - >醒来并宣传60秒 - >等到手机询问数据 - >发送数据 - >关闭连接并睡眠,直到下一次按钮点击。
这意味着设备不能保持恒定的BLE连接。我需要在它醒来时重新连接到设备。我正在考虑两种不同的策略:
connectGatt
,autoConnect
参数等于true
。如果设备断开连接,请等待自动连接。connectGatt
参数等于autoConnect
的情况下致电false
。 close
BluetoothGatt
并在设备断开连接后开始新扫描。我想,第一种方法在功耗方面更好。但我看到多个建议不使用autoConnect true
。
我对第二种方法感觉不好,因为文档说“Never scan on a loop, and set a time limit on your scan”/可能我应该扫描3秒,而不是等待30秒。但它看起来像一个循环。
请告诉我哪种策略更好。考虑第二种方法,是否可以一直扫描(暂停)?也许有一些最佳实践来实现类似的工作流程?