1

我正在试验 Android 手机和 Android Wear 智能手表之间的蓝牙(低能耗,或特别是 4.0)连接。就我而言,我使用的是三星 Galaxy S6 和 Moto 360(第一代),它们都支持蓝牙 LE。

我认为蓝牙设备应该更喜欢使用最新的协议。尽管这两种设备都支持经典的 BT 和 BTLE,但它们“应该”通过 BTLE 连接。然而,在观察使用 Ubertooth One ( http://ubertooth.sourceforge.net/hardware/one/ ) 收集的数据后,我发现情况并非如此。显然,我在配对之前从 Moto 360 获得了 ADV_IND 广播数据包,一旦点击手机与手表配对,广播就会停止,并且看不到 CONNECT_REQ 或任何其他数据包。

由于 Ubertooth 看不到经典的 BT 数据包,我想知道是不是因为智能手表在经典 BT 和 BTLE 频道上广播,而手机只是通过经典 BT 连接?

4

2 回答 2

0

如果智能手表在广告中宣布支持 LE 和 BR\EDR 模式,则在 android 蓝牙堆栈中与此设备配对的默认操作是 page & connect,即在 BR\EDR 模式下配对,而不是 LE 模式.

于 2016-08-10T07:13:12.027 回答
0

我认为蓝牙设备应该更喜欢使用最新的协议。尽管这两种设备都支持经典的 BT 和 BTLE,但它们“应该”通过 BTLE 连接。

你读过核心规范吗?但我记得在这种情况下他们应该通过 BR/EDR 连接。抱歉,我手头没有核心规格,我稍后会发布该卷/部分。

由于 Ubertooth 看不到经典的 BT 数据包,我想知道是不是因为智能手表在经典 BT 和 BTLE 频道上广播,而手机只是通过经典 BT 连接?

有一种名为“BR/EDR Not Supported or not”的 AD 类型可以显示此设备是仅支持 LE 设备还是支持 BR/EDR/LE。我不确定你的 AD 类型嗅探器是什么,但你可以检查这个字节。并且智能手表无法通过 BR/EDR 频道进行广播。

于 2016-08-04T07:15:26.270 回答