如何估计两个Android设备之间的距离? (蓝牙首选)

时间:2012-12-23 22:33:23

标签: android bluetooth distance wifi-direct

目标不是真正的距离。这更简单 目标是检查其他设备是否非常接近。对或错。假设10或15个cms是关闭的,所以我们的检查是正确的,任何远离检测的设备都没有检查,这是错误的。

我的第一种方法是使用api的方法fetchUuidsWithSdp(),但它失败了!
无论是远离cms的设备还是在大房间的另一端,延迟似乎都是一样的!

即使没有蓝牙,任何解决方案都是可以接受的。例如,我完全不熟悉 wifi direct p2p 协议。也许有一些东西可以用来粗略估计距离。

编辑:我正在阅读有关接收信号强度指示器( RSSI )的信息。这可以用于我们的特定情况,粗略估计设备之间的距离。但也许可能有某些东西要结合起来以提高准确性。

编辑:我把Ralgha的答案放到了测试中。我确实建立了一个连接,并且在设备之间有一个小的协议乒乓 当ping 1字节时非常接近时平均延迟为22.6000毫秒,而在房间的另一角则为22.6087毫秒。 当ping 1024字节时非常接近时平均延迟为40.3173毫秒,而在房间的另一角时,平均延迟为32.3138毫秒。 毕竟,延迟确实没有任何关于距离的信息

谢谢!

4 个答案:

答案 0 :(得分:9)

答案 1 :(得分:5)

我研究过蓝牙定位,它就像检测信号强度一样简单。为了获得真正准确的结果,您还需要考虑您使用的手机类型,电池类型和电池状况。您还必须考虑环境及其如何影响信号强度,以及可能干扰信号的障碍,例如人,墙壁,桌子等。

要确定距离,您还需要使用三角测量技术来确定移动设备的位置。您还可以在您的环境中设置一个数字发射器,并针对每个发射器进行测量。知道这些发射器的位置,您就可以计算出手机的位置。

但是,信号强度会有所不同,您必须进行大量校准。有许多科学论文可以帮助您了解所需的算法。还有一些公司提供此服务,用于商场,博物馆等。

那就是说,如果你可以获得信号强度,那么你应该能够计算出基本的近或远结果,它只是不完全准确,在这种情况下我仍然认为有许多发射器会仍然有很多帮助。

Paper, some of the pitfalls PDF(download), another paper

这是我从谷歌搜索蓝牙定位中读到的大量论文,可以给你一些指示。

答案 2 :(得分:4)

我能想到的唯一可行的方法是使用NFC。要使用蓝牙或Wi-Fi,您必须通过信号强度来实现,但每个发射器都是不同的,因此根本不可靠。

由于无线电波以光速传播,并且一英寸和一英里之间的时差基本为零,因此延迟相当无用。要衡量这种差异,您需要比手机中更高的分辨率。

答案 3 :(得分:3)

您没有指定此距离检测的目标,但如果您可以为此添加一些额外要求(即手机方向和闪光灯),则可能会使用完全不同的方法。

如果两台设备的定位方式使两台摄像机彼此面对,则闪光灯可用于验证正确的手机和距离。相机图像中产生的白点大小随着距离的增加而迅速减小,特定的闪光序列可以区分其他手机闪光灯和其他光源。

这可能需要一些调整才能在户外工作,因为相同距离的光斑尺寸会小得多......

问候。