如何使用同一应用检测附近的Android设备

Jos*_*ood 0 android google-maps login bluetooth geolocation

所以基本上我过去曾经做过一些小型应用,但这是我的第一个“适当”应用。

该应用程序的主要功能之一,是让我苦苦挣扎的一点是,我需要能够使用登录到该应用程序的所有其他用户来填充ListView,但是我只想显示设定距离,例如10米。

我尝试使用蓝牙来实现此目的,但是那没有用。我现在想使用位置服务来做到这一点。

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

是否有人知道我将如何实现这一目标,或者知道任何涉及更简单主题的教程。谢谢

jt0*_*000 5

免责声明:我不是android开发人员,但是这似乎是一个设计问题而不是实现问题,因此希望我在下面的评论可能有用...

我不认为可以将API设置为“ true”来获得此功能,因此,我认为您将必须定制所有运动部件(有几个)。我认为一般流程如下:

在客户端上:

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

在服务器上:

  1. 需要某种身份验证端点才能获取用户身份
  2. 需要一个端点供用户注册其位置(“ user@gmail.com位于100N 90E”)
  3. 需要一项服务来找出每个用户之间的距离
  4. 需要端点返回X英里内的用户(由#3生成的列表)

这些步骤中的每一个都不应该很困难,如果愿意,您实际上可以在服务器步骤3上使用分发算法获得一些好处。

您可以问自己一些问题:

  • “如何设置服务器以侦听HTTP请求?” -查看Node.JS作为一个简单的解决方案
  • “如何在android中获取用户的位置?” -简易的Google搜索可找到大量文档
  • “如何编写服务以连续执行操作?” -Node.JS将再次提供帮助
  • “我将在哪里存储用户的位置及其彼此之间的距离?” -您可以查看NoSQL选项,例如CouchBase或MongoDb。或者,您可以将MySQL用于更结构化的数据库。

希望这可以帮助...