在做scanner产品时,发现蓝牙与android设备断开连接时,android端大概需要20多秒才显示scanner断开连接,客户认为这个时间太长,需要修改成5秒。
与这个问题相关的技术关键词是“link supervision timeout”,当蓝牙为master设备时,可以修改这个timeout,与此同时,slave设备的“link supervision timeout”也会一同修改。
也就是说,只有设备为master时,才有权限修改“link supervision timeout”这个属性。
scanner产品用的是CSR BC4/5系列,查询相关的代码,可以查询到关键的库函数定义如下(lib\connection\connection.h)
/*!
@brief This function is called to set the link supervision timeout.
@param theAppTask The client task.
@param sink The sink.
@param timeout The timeout in 0.625ms units.
*/
void ConnectionSetLinkSupervisionTimeout(Sink sink, uint16 timeout);
/* set timeout to 1 second */
ConnectionSetLinkSupervisionTimeout(xxx.sink, 0x064c);