如何从一个 android 设备检索 GPS 位置并将其实时提供给另一台 android 设备 [关闭]

Posted

技术标签:

【中文标题】如何从一个 android 设备检索 GPS 位置并将其实时提供给另一台 android 设备 [关闭]【英文标题】:How to retrieve GPS location from one android device and provide it to another android device in realtime [closed] 【发布时间】:2018-02-17 18:43:18 【问题描述】:

我想检索一个安卓设备的 GPS 位置并将其实时获取到另一台安卓设备。我浏览了很多资源,才知道它可以使用 GCM、FCM、套接字或轮询来实现。但是 GCM 或 FCM 无法提供实时更新,轮询会导致更多的电池消耗。对于 Sockets 我已经完成了 socket.io 实现,但我不知道它是否是完美的实现。因此,请提供有关如何更好地实施的建议。

现在另一种情况是,如果多个用户通过同一个套接字连接到服务器,那么我们如何确定哪个用户正在监视谁?

请帮忙...

【问题讨论】:

还有其他类别的应用程序提供设备之间的实时数据交换。聊天就是一个例子。因此,您可能会考虑研究聊天应用程序使用什么(XMPP、WebRTC、WebSockets 等)并考虑使用其中一种技术。我们无法为您的 socket.io 代码提供帮助,因为我们看不到它。 大多数聊天应用程序都实现了 FCM 或 GCM,但在我的情况下,我需要实时执行相同的操作,这可以通过套接字或其他实现来完成。实现套接字的聊天应用程序是通过 socket.io 完成的,但 socket.io 以广播方式完成,适用于聊天室,但不适用于私人聊天。 “实现套接字的聊天应用程序已通过 socket.io 完成”——这是不正确的。聊天应用程序可以使用多种协议。我在之前的评论中提到了三个:XMPP、WebRTC 和 WebSockets。其中,Socket.IO 可以帮助 WebSockets,但它不是唯一的 WebSocket 选项。 Socket.IO 可以帮助其他传输机制(例如,长轮询)。因此,与其将自己限制在 Socket.IO,不如考虑对其他现有应用使用什么进行更多研究。 你也可以看看MQTT。 【参考方案1】:

您可以使用 firebase 数据库。一旦您将 firebase sdk 集成到您的项目中,在设备之间发送和获取位置更新将变得非常简单。

您可以将位置条目(lat、lng、时间戳)保存到一台设备的数据库中,而在另一台设备中,您可以监听子事件。如果两个设备正在读取和写入同一个数据库引用(比如同一个数组),它将像魅力一样工作。

从这里开始:

https://firebase.google.com/docs/database/android/start/

【讨论】:

以上是关于如何从一个 android 设备检索 GPS 位置并将其实时提供给另一台 android 设备 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

检索到 Android GPS 虚假位置

如何通过 SMS 检索 GPS 位置

仅从 Xamarin Android 中的 GPS 传感器检索位置信息

Android GPS 位置与其他 GPS 设备

如何更好地处理 GPS 位置和 android

如何设置gps位置