我正在尝试使用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连接?
答案 0 :(得分:0)
我认为蓝牙设备应该更喜欢使用最新版本 协议。即使两个设备都支持经典的BT和BTLE,它们也是如此 "应该"通过BTLE连接。
你有没有读过核心规范?但我记得在这种情况下他们应该通过BR / EDR连接。对不起,我手头没有核心规格,我稍后会发布音量/部分。
由于Ubertooth无法看到经典的BT数据包,我想知道它是不是 因为智能手表在经典BT和BTLE上播放 频道,手机只通过经典的BT连接?
有一个AD类型名为" BR / EDR不支持或不支持"可以显示此设备是仅支持LE设备还是BR / EDR / LE。我不确定您的AD类型嗅探器是什么,但您可以检查此字节。 而智能手表无法通过BR / EDR频道进行广播。
答案 1 :(得分:0)
如果智能手表在其广告中宣布它同时支持LE& BR \ EDR模式,在Android蓝牙堆栈中与此设备配对的默认操作是page&连接,即在BR \ EDR模式下配对,而不是LE模式。