两部安卓手机之间的距离

19

我想知道除了GPS定位以外,是否有其他方法可以确定两台手机是否在一定的距离内?例如,如果一部手机与另一部手机距离不到3英尺,因为GPS不是很准确。

我正在开发一个Android平台的多人互动游戏,在我的毕业项目中需要保证一个玩家与另一个玩家之间的距离不超过三英尺。

任何帮助都非常有用,但从搜索结果来看,似乎这不太可能。大多数手机数据可以共享,我将使用蓝牙和组播套接字。

非常感谢您的时间。


感谢所有人的回复。我仍在研究中,找到更容易实现的方案后会更新;但目前似乎使用蓝牙RSSI值是可行的方法。


1
有趣的问题,点个赞。但我很好奇,GPS技术是否已经足够精确了?(至少在安卓设备上是这样的)。 - Jimmy
不是那么准确,据我所知,可能在户外3到5英尺左右。此外,GPS的精度是不稳定的,因此它不够可靠。 - Keith
首先,我不想回答自己的问题,因为我选择的解决方案并没有完全实现我的目标。我决定留言,只是为了说明我确实关注这个问题,但到目前为止还没有明确的解决方案。 - Keith
我决定使用线程零交叉算法来监测大约相隔50Hz的两个频率范围。现在这种方法有缺点,包括可能的干扰、对我的游戏产生反作用的声音以及同一频率可能被解释为+/- 30-40 Hz,因此需要更大的窗口来接受可接受的频率。优点是它相当容易实现,在拥挤的区域中高频率减少了误解的机会,并且这不是一个非常密集的过程。 - Keith
很好的问题,因为我正在做类似的事情。不过我会尝试一下谷歌提供的GPS服务,据说可以让你接近目标位置。我在某个地方读到过,使用Google Maps时,它会将你投影在地图上的车道内,精度在4米以内。但对于你的项目来说,这种方法行不通,除非谷歌已经改进了。如果有其他人感兴趣,我会告诉他们这个方法的效果如何。 - JenniferG
3个回答

3
不,Android设备不包含此类功能。您可能能做的最好的事情是测量蓝牙信号强度。它不会自动给您一个精确的答案,但是您可以先在应用程序中创建一个基线。也就是说,当您感兴趣的Android设备大约相距1米时,点击一个按钮。
请参阅以下问题:Android 2.1:如何轮询现有蓝牙连接的RSSI值?

1

我也有同样的需求,实际上GPS无法提供这种精度。我的解决方案更加实用,需要的计算量也更少。在游戏开始时,您可以“校准”要交互的设备。

例如,将两个Android设备放在一起,同时按下某个校准工具。然后,您将认为该空间点是两个设备的(0,0,0)坐标。

基本上使用加速度计和陀螺仪,以及其他传感器,您就可以做到这一点。希望它能有所帮助,因为这是我即将实现的解决方案。我会研究一下那个蓝牙RSSI的东西。


这个对你来说怎么样,Pedro?你使用了死算法吗? - Keith

0

你能不能让一个设备播放一些音频,然后另一个设备计算听到那个音频的延迟?如果不行,可以使用振动器和加速度计,基于一些已知的基准线来寻找强度。


使用音频是我目前找到的唯一解决方案。我将在一个设备上播放频率,而另一个设备将使用零交叉方法(仍需要一些改进)实时监测麦克风数据。如果我成功使其正常运行,我将发布完整的答案来回答我的问题。 - Keith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接