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

标签 android bluetooth distance wifi-direct

目标是没有真正的距离。比较简单。
目标是检查另一台设备是否非常接近。对或错。假设 10 或 15 厘米很近,因此我们的检查是正确的,而任何更远的设备都无法通过检查并且是错误的。

我的第一个方法是使用api的方法fetchUuidsWithSdp(),但是失败了!
无论是几厘米外的设备还是大房间另一端的设备,延迟似乎都是一样的!

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

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

编辑:我测试了拉尔加的答案。我确实建立了连接,并且在设备之间建立了 ping-pong 的次要协议(protocol)。
当以 1 字节 进行乒乓球时,非常接近时的平均延迟为 22.6000 毫秒,在房间的另一个角落时为 22.6087 毫秒。
当以 1024 字节 进行乒乓球时,在非常接近时的平均延迟为 40.3173 毫秒,在房间的另一个角落时甚至更小,为 32.3138 毫秒。
毕竟,确实,延迟不携带任何有关距离的信息!

谢谢!

最佳答案

关于android - 如何估计两个安卓设备之间的距离? (蓝牙首选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015239/

相关文章:

android - 具有 128 位 UUID 的 startLeScan 不适用于 native Android BLE 实现

python - PyBluez 导入错误 : DLL load failed: %1 is not a valid Win32 application

android - 是否可以在不针对设备的情况下通过蓝牙 LE 进行广播?

mongodb - MongoDB 的错误距离计算

algorithm - 当我们之间有一些 block 时,如何找到最接近点的点! (在 2D 数组中 - 贪吃蛇游戏)

java - 如何接收外部应用程序的广播元数据?

java - 切换内容 View 时信息不会保存

android - 针对导致问题的不同密度优化应用程序

swift - 如何使用 Core bluetooth Framework 在 iOS 13 中发现经典蓝牙设备

r - 如何计算 R 中两个向量之间不同的众所周知的相似性或距离度量?