2016-07-26 140 views
0

我在智能手机(AG-Audio Gateway)和嵌入式主板(HF-Handsfree)之间使用BlueZ堆栈进行蓝牙连接。BlueZ哪一层得到蓝牙断开的原因

在Bluez(HCI,L2CAP,RFCOMM)的哪一层我们会得到蓝牙断开的原因。因此,我们可以区分以下类型的断开连接:

  1. 智能手机SIMPLE DISCONNECT(智能手机SIMPLE DISCONNECT),但手机的成对列表中仍然有HF嵌入式设备。
  2. 蓝牙连接期间的智能手机FORGET HF设备。
  3. 断开,因为HF设备去智能手机的蓝牙覆盖范围

回答

0

HCI出来:切断完毕事件,检查原因字节。

+0

只要通过智能手机(AG)发起的断线,我得到的理由:HCI_OE_USER_ENDED_CONNECTION \t \t 0×13 – Hari

+0

只要通过智能手机(AG)发起的断线,我得到的理由: HCI_OE_USER_ENDED_CONNECTION \t \t 0×13 但这是不够的区分以下类型的断开连接: 1.智能手机SIMPLE DISCONNECT(智能手机SIMPLE DISCONNECT),但手机仍然在其配对列表中包含HF嵌入式设备。 2.蓝牙连接期间的Smart-Phone FORGET HF设备。 3.智能手机在蓝牙连接期间切换蓝牙。 从手机端(AG)发起断开连接时,我正在收到特定事件,但在此可以进一步区分断开类型吗? – Hari

+0

根据情况,错误代码应该有所不同。例如,如果超出范围,我会期待“连接超时”(0x08)。此外,如果AG发起断开连接,您可能会在智能手机上收到“通过本地主机终止连接”(0x16)。由于AG发起断开连接,所以应该知道原因,并且返回码意味着该过程是成功的。 –