【问题标题】:Alert when two users/friends are near to each other - Android Proximity当两个用户/朋友彼此靠近时发出警报 - Android Proximity
【发布时间】:2014-12-03 05:16:03
【问题描述】:

我尝试搜索,但找不到任何东西。 我的问题是“如果 2 个或更多用户彼此靠近,我如何提醒他们?”在 android 中使用地理围栏或其他方式。

假设,如果用户 A 在足球场中,而用户 B 在该足球场附近行走。然后 UserA 和 UserB 会自动收到 UserA/UserB 在附近某处的通知。

【问题讨论】:

    标签: android geolocation location proximity geofencing


    【解决方案1】:

    经过几个小时的思考,我终于想到了一个更好的方法:

    1. 在您的服务器中设置一个数据库(MySQL、SQL 等),其中包含包含位置数据的用户表和位置表

    2. 在 Android 中创建一个服务,该服务将在 15 分钟内触发一次,请求当前位置。

    3. 创建 SharedPreference / SQliteDB,它保存了设备的最后一个坐标,该坐标也更新到了服务器数据库。

      3.1 If 当前位置与从 SharedPreference and/or 当前位置在x 邻近范围内检索到的最后位置匹配(取决于您给x 30 英尺或更多)
      then 用户在同一个地方所以不要将坐标上传到服务器数据库

      3.2。 If 用户不在附近 or 最后位置与当前位置不匹配
      then 将坐标上传到服务器数据库。

    4. 将坐标上传到服务器后,也要更新 SharedPreference...

    5. 上传坐标后,服务器必须从其数据库中返回您附近的用户详细信息。然后,您的应用会知道谁在您附近并向您发送通知,说“您的好友 XXX 就在附近!”

    6. 在服务器中,上传您的坐标后,服务器还会使用 Google Cloud Messaging 向您附近的用户发送通知。

    提示:在您的服务器中运行一个 cron 作业,该作业将每分钟执行一次并检查“谁靠近谁”并向他们发送通知。

    希望它可以帮助某人:)

    【讨论】:

      【解决方案2】:

      太简单了。只需将您的移动位置发送到数据库并在搜索附近用户时使用此查询:

      $query = "select * from 
          (SELECT name,latitude,longitude,round((((acos(sin((".$latitude."*pi()/180)) * 
          sin((`latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * 
          cos(((".$longitude."- `longitude`)*pi()/180))))*180/pi())*60*1.1515*1.609344),1) as distance
      FROM location) as temp order by distance";
      

      有关更多信息,我已经发了一个帖子。

      http://www.freebieslearning.info/android-2/android-find-nearby-user/

      希望对你有帮助。

      【讨论】:

        【解决方案3】:
        1. 在设备上通过 android location api 查询您自己的位置。
        2. 在设备上将结果发送给您的朋友
        3. 在 B 设备上接收设备 A 位置
        4. 在 B 设备上将设备 B 位置发送到设备 A。
        5. 计算 A 和 B 之间的距离。如果满足距离要求,则显示通知。

        有很多方法可以做到这一点。

        【讨论】:

        • 不满意! 1st)为什么UserA的设备不断更新自己的位置到服务器或UserB?它会使果汁干涸 2)将 UserA 的位置信息发送给 UserB 和 UserC 可以使用吗?
        猜你喜欢
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 1970-01-01
        • 2014-09-14
        相关资源
        最近更新 更多