如何使用相同的应用程序检测附近的Android设备

时间:2014-09-06 21:49:47

标签: android google-maps login bluetooth geolocation

所以基本上我过去做了一些小应用程序,但这是我的第一个“正确”的应用程序。

该应用程序的主要功能之一,我正在努力的一点是,我需要能够与登录到应用程序的所有其他用户一起填充ListView,但是我只想显示用户在一定距离内,例如10米。

我尝试使用蓝牙来实现这一目标,但这并不奏效。我现在想使用位置服务来做到这一点。

我的想法是必须每隔几分钟将设备的位置发送到外部服务器,然后所有其他设备都可以运行一个功能,将其位置与此服务器上的其他设备进行比较。

有没有人知道如何实现这一点,或者知道任何涵盖更简单主题的教程。谢谢

1 个答案:

答案 0 :(得分:4)

免责声明: 我不是Android开发人员,但这似乎是设计问题而不是实施问题所以希望我的评论可能是一些用途......

我不认为有一个API可以设置为" true"为了获得这个功能,所以我认为你必须定制所有移动部件(并且有一对)。我认为一般过程会是这样的:

在客户端:

  1. 客户端上的用户使用某种身份登录到服务器(即" user@gmail.com")
  2. 客户端应用每隔X分钟获取当前位置(即" 100N 90E")并将其发送到服务器
  3. 客户每隔X分钟轮询一次服务器,看看谁在10英里范围内(即#34; joe@gmail.com"," mary@gmail.com")
  4. 在服务器上:

    1. 需要某种身份验证端点来获取用户的身份
    2. 需要用户注册其位置的端点(" user@gmail.com为100N 90E")
    3. 需要服务以了解每个用户彼此之间的距离
    4. 需要端点返回X英里内的用户(从#3生成的列表)
    5. 这些步骤中的每一步都不应该自己变得困难,如果你愿意的话,你可以在服务器步骤#3上使用分发算法变得非常疯狂。

      您可以问自己的一些问题是:

      • "如何设置服务器以侦听HTTP请求?" - 查看Node.JS以获得简单的解决方案
      • "如何获取用户在Android中的位置?" - 轻松的谷歌搜索找到了大量的文档
      • "如何编写服务以持续执行操作?" - Node.JS将再次提供帮助
      • "我将在哪里存储用户的位置以及他们彼此的距离?" - 你可以查看像CouchBase或MongoDb这样的NoSQL选项。或者您可以将MySQL用于更结构化的数据库。

      希望这会有所帮助......