我如何在 android 应用程序中获取附近用户的列表?

how do i get a list of nearby users in an android application?

我正在构建一个带有 UI 的应用程序,它可以获取附近用户的列表,以帮助联系志趣相投的人。我知道这不是一个新概念,像 Grindr 这样的应用程序正是我想要实现的目标。我如何从 phone 获取应用程序的个人资料信息并将其显示在另一个 phone 运行 相同的应用程序上?为此需要网络服务器吗?

为了说明用户会看到什么:用户 A 写了他们的角色简介并显示了艺术作品,用户 B 在附近并且在主页 gridview 上看到了用户 A。

用户 B 如何将此信息传递给他的 phone?这样做的最佳做法是什么?

我已经看过但找不到解决这个问题的方法,但如果这个问题已经在其他地方得到解答,我将不胜感激链接,这样我就不会回答重复的问题。我是新手,在开始深入 android 编程时需要一些指导,这是一个我似乎一直在回头思考的问题。

您需要让所有用户每隔几分钟通过网络服务将他们的当前位置上传给您。将其存储在数据库中(使用 UPSERT)。然后,当用户想要寻找附近的其他用户时,您可以在数据库中搜索该范围内的所有用户和 return 该列表。使用支持 GIS 的数据库(例如带有 PostGis 扩展的 Postgres)会有所帮助,但这不是必需的。

在数据库中添加位置时间戳可能是个好主意,这样您就可以消除太旧的结果。

如果您尝试在短距离内进行操作并且不想在服务器上存储数据,您可以使用 wifi-direct 在用户之间传输数据...但是它可能会耗尽用户的电池电量..为了避免这种情况,您可以使用蓝牙用于初始检测的低能量,然后用于通信的 wifi-direct...

出于隐私考虑,我还建议您的服务器不得 return 其他用户的确切位置。如果您想显示距离,请使服务器 return 具有故意的随机误差,以防止用户对其他人的位置进行精确的三角测量。

Google 刚刚宣布新的 Nearby API 完全符合您的要求。它已包含在 Google Play services 7.8. Here you can find a detailed blog entry from Google's blog where they explain it in detail, and here 你有参考页。

我正在调查您是否可以配置搜索距离。