是的,但你也需要一台服务器。从广义上讲,这个过程如下:
- 该应用从Android获取位置。
- 应用程序查询服务器,在其请求中发送当前位置。
- 服务器将位置和用户名存储在空间数据库中;也就是说,可以按位置编制索引的用户数据库。如果有的话,它会覆盖以前的位置。服务器还应该存储位置设置的时间。
- 服务器还会在空间数据库中查找位置,以查找给定半径中的所有用户或最近的 n 用户。它将用户列表发送回应用程序。它可能使用JSON,XML或其他格式来发送这些数据。 (由于您控制服务器和应用程序,您可以选择您喜欢的任何格式。)
- 如果设备的位置发生变化,应用程序会再次向服务器报告其位置,并获取新的用户列表。
- 您还可以使用Google Cloud Messaging或持久连接,让新用户出现在附近,如果您的应用需要,可让服务器通知应用。
- 当用户离线时,应用程序会向服务器发送另一条消息告诉它。这将删除用户在数据库中的位置,以便该用户在离开该区域后不会显示。
- 如果应用程序崩溃或突然断开连接,服务器还应该在一定时间内更新数据库中的位置。
对于服务器,您可以在PostGIS之上实现一些功能。 PostGIS是PostgreSQL的一个插件,允许它回答空间查询。
这是一个非常具体的需求,因此我认为您可以下载任何现有代码来为您执行此操作。一旦你试了一下,如果你遇到困难就问一个新的问题。