【问题标题】:Distance between two android phones两部安卓手机之间的距离
【发布时间】:2010-11-26 10:23:46
【问题描述】:

我想知道:除了 GPS 定位之外,还有什么方法可以确定两部手机是否在一定距离内?例如,如果一部手机距离另一部手机不到 3 英尺,因为 GPS 并不那么准确。

我正在为我在 android 平台上的最后一年项目开发一款多人互动游戏,它要求一个游戏玩家与另一个游戏玩家之间的距离不超过 3 英尺。

任何事情都是最有帮助的,但环顾四周,这似乎是不可能的。大多数电话数据都可以共享,我将同时使用蓝牙和多播套接字。

非常感谢您的宝贵时间。


感谢到目前为止大家的回复。我仍在研究这个,当我发现一些更容易做的事情时会更新;但到目前为止,似乎使用蓝牙 RSSI 值是可行的方法。

【问题讨论】:

  • +1 有趣的问题。但我很好奇,GPS 是否先进到如此精确? (至少在机器人设备中)。
  • 不,据我所知,它不是那么准确。可能在户外 3 到 5 英尺。 gps精度也是可变的,所以它不够可靠。
  • 首先我不想回答我自己的问题,因为我选择的解决方案并不能完全实现我的目标。我决定发表评论,只是为了说明我确实检查过这个问题,但到目前为止实际上还没有明确的解决方案。
  • 我决定使用线程过零算法来监控相隔约 50 Hz 的两个频率范围。现在这有一些缺点,包括可能的干扰、对我的游戏产生反作用的声音,并且相同的频率可能会被解释为 +/- 30 - 40 Hz,因此它需要更大的窗口来接收可接受的频率。优点是实施起来相当容易,更高的频率减少了在拥挤区域中被误解的机会,而且过程并不那么密集。
  • 好问题,因为我正在做类似的事情。然而,我将尝试使用谷歌提供的 GPS 服务,据说它可以让你非常接近,我读到一些地方,当使用谷歌地图时,它会将你投射到 4 米内,这就是你如何适应地图上的车道。就您的项目而言,除非谷歌有所改进,否则它将无法工作。对于其他感兴趣的人,我会让他们知道结果如何。

标签: android bluetooth distance


【解决方案1】:

不,Android 设备不包含此类功能。您可能做的最好的事情就是测量蓝牙信号强度。它不会自动给你一个精确的答案,但你也许可以先在你的应用程序中创建一个基线。也就是说,当您感兴趣的 Android 设备彼此相距大约 1 米时,单击一个按钮。

查看以下问题:Android 2.1: How do I poll the RSSI value of an existing Bluetooth connection?

【讨论】:

    【解决方案2】:

    我也有同样的需求,确实 GPS 不能用于这样的精度。我的解决方案更实用,计算方式更少。在游戏开始的那一刻,您可能会“校准”您想要与之交互的设备。

    例如,将两个安卓设备放在一起,同时按下一些校准工具。然后,您将考虑空间中的该点作为两个设备的 (0,0,0) 坐标。

    基本上使用加速度计和陀螺仪,也许还有其他传感器,您就可以做到这一点。希望它有所帮助,因为它是我现在要实施的解决方案。来看看那些蓝牙 RSSI 的东西。

    【讨论】:

    • 佩德罗你觉得怎么样?您是否使用了航位推算方法?
    【解决方案3】:

    您不能让一台设备播放一些音频,然后另一台设备计算听到该音频的延迟吗?如果做不到这一点,振动和加速度计具有相同的原理,但会根据一些已知的基线寻找强度。

    【讨论】:

    • 使用音频是我遇到的唯一解决方案。我将在一个设备上播放一个频率,而另一个设备使用过零方法(这仍然需要一些改进)来实时监控麦克风数据。如果我让它正常运行,我将发布我的问题的完整答案。
    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多