![](/img/trans.png)
[英]How to estimate distance between two android devices through wifi-direct?
[英]How to estimate distance between two android devices? (bluetooth preferred)
目标是没有真正的距离。 这是更简单的事情。
目标是检查另一个设备是否非常非常接近。 对或错。 假设 10 或 15 厘米很近,所以我们的检查是正确的,任何更远的设备都无法通过检查,这是错误的。
我的第一种方法是使用 api 的方法fetchUuidsWithSdp()
但它失败了!
无论是距离几厘米的设备还是在大房间的另一端,延迟似乎都是一样的!
即使没有蓝牙,任何解决方案都是可以接受的。 例如,我完全不熟悉wifi direct p2p协议。 也许那里可能有一些有用的东西来粗略估计距离。
编辑:我正在阅读有关接收信号强度指示器( RSSI )的信息。 这可以用于我们的特殊情况,粗略估计设备之间的距离。 但也许可以结合一些东西来提高准确性。
编辑:我将 Ralgha 的答案用于测试。 我确实建立了一个连接,并有一个在设备之间进行乒乓的小协议。
当以1 字节进行乒乓时,非常接近时平均延迟为 22.6000 毫秒,而在房间的另一个角落时为 22.6087 毫秒。
当以1024 字节进行乒乓时,距离非常近时平均延迟为 40.3173 毫秒,而在房间的另一个角落时则更小,为 32.3138 毫秒。
毕竟,延迟确实不携带任何有关距离的信息!
谢谢!
你可以用声音测量距离。
我研究了蓝牙定位,它和检测信号强度一样简单。 为了获得真正准确的结果,您还需要考虑您使用的手机类型、电池类型和电池状况。 您还必须考虑环境及其对信号强度的影响,以及可能干扰信号的障碍物,例如人、墙壁、桌子等。
要确定距离,您还需要使用三角测量技术来确定移动设备的位置。 您还可以在您的环境中设置多个发射器并针对每个发射器进行测量。 了解这些发射器的位置后,您就可以计算出手机的位置。
但是,信号强度会有所不同,您必须进行大量校准。 有许多科学论文可以深入了解所需的算法。 还有几家公司提供这种服务,用于商场、博物馆等。
也就是说,如果您可以获得信号强度,那么您应该能够计算出基本的远近结果,它不会完全准确,在这种情况下,我仍然认为拥有多个发射器仍然有助于很多。
我从谷歌搜索蓝牙定位中读到了很多论文,它们会给你一些指导。
我能想到的唯一可行的方法是使用 NFC。 要使用蓝牙或 Wi-Fi,您必须通过信号强度来实现,但每个发射器都不同,因此根本不可靠。
延迟是相当无用的,因为无线电波以光速传播,而传播一英寸和一英里之间的时间差基本上为零。 要测量这种差异,您需要比手机更高的分辨率。
您没有指定此距离检测的目标,但如果您可以为此添加一些额外要求(即手机方向和闪光灯),则可能会使用完全不同的方法。
如果两个设备都以两个摄像头面对面的方式定向,则可以使用闪光灯来验证正确的手机和距离。 相机图像中产生的白点的大小随着距离的增加而迅速减小,特定的闪光序列可以区分其他手机闪光灯和其他光源。
这可能需要一些调整才能在户外工作,因为对于相同的距离,光斑尺寸会小得多......
问候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.