我有目标设备的蓝牙mac-id。然而,蓝牙处于隐藏/不可见模式。
两部手机都是Android(非root)。
我做了研究并且 * 知道 * 如果我知道mac-id,我可以(在大多数情况下)连接到一个设备,但是我只想扫描附近而不连接,也就是说,如果目标设备在蓝牙范围内而且我知道它的mac-id,我能否 * 只是 * 知道它是否在附近(或者用笼统的说法,为其扫描?)
简短回答是不行,你无法发现无法被探测到的蓝牙设备。
不可被发现模式
是制造商为了防止设备追踪等滥用而实施的安全措施。这使得标准的蓝牙适配器(如你的)完全无法确定一个隐形/不可发现的设备是否靠近。
然而,最近发现这种安全措施并不是最佳选择。 Michael Ossmann在此处介绍了Ubertooth
的工作原理,这是一个能够检测到不可被发现设备的小型蓝牙适配器。你可以在here 找到对此内容很好的介绍,使用开源计划构建此dongle,甚至buy他的dongle。
编辑:
如果你首先知道蓝牙设备的完整MAC地址,则即使其处于不可被发现模式,也可以知道它是否周围存在。
技术方法是尝试进行页面请求,发送组成所寻找的蓝牙主机MAC标识符的所有6个字节。页面请求允许在知道其BT ADDR时连接到蓝牙从设备。虽然处于不可发现模式的设备不会响应查询扫描(设备发现意图),但它们会响应页面扫描,后者用于想要连接到先前已知设备的设备。