我試過搜索,但找不到任何東西。 我的問題是「如何使用地理圍欄或其他方法在2個或更多用戶之間發出提醒,如果他們彼此附近?」。當兩個用戶/朋友彼此靠近時發出警報 - Android Proximity
說,如果用戶A在橄欖球場內並且用戶B在足球場附近行走。然後UserA和UserB自動獲取UserA/UserB位於附近的通知。
我試過搜索,但找不到任何東西。 我的問題是「如何使用地理圍欄或其他方法在2個或更多用戶之間發出提醒,如果他們彼此附近?」。當兩個用戶/朋友彼此靠近時發出警報 - Android Proximity
說,如果用戶A在橄欖球場內並且用戶B在足球場附近行走。然後UserA和UserB自動獲取UserA/UserB位於附近的通知。
最後花了幾個小時思考之後,我想到了一個更好的辦法來做到這一點:
安裝在你的服務器,讓用戶表和位置表,有一個數據庫(MySQL和SQL等)位置數據
在Android中創建一個服務,它將在15分鐘內觸發一次請求當前位置。
創建SharedPreference/SQliteDB,其中包含也更新到服務器數據庫的設備的最後座標。
3.1 If
當前位置x
距離內從SharedPreference and/or
當前位置檢索到的最後位置匹配(取決於你給多少x
30英尺以上) then
用戶是在同一個地方所以不要上傳座標到服務器數據庫。
3.2。 If
用戶不在臨近範圍內or
上一個位置與當前位置不匹配then
上傳座標到服務器數據庫。
座標上傳到服務器後,更新SharedPreference太...
上傳座標後,服務器必須返回從它的數據庫是你距離內誰的用戶詳細信息。然後,您的應用程序會知道您附近的人,並向您發送通知,告知您「您的朋友XXX在附近!」
在服務器中,上傳座標後,服務器還會通過Google Cloud Messaging向您附近的用戶發送通知。
提示:運行在服務器cron作業將執行每分鐘,並檢查「誰靠近誰」,並通知他們。
希望它可以幫助別人:)
有很多方法如何做到這一點。
這是太簡單了。只需將您的移動位置發送到數據庫,並在搜索附近用戶時使用此查詢:
$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/
我希望這會幫助你。
不滿意! 1st)UserA的設備如何不斷更新自己的位置到服務器或UserB?它會使果汁乾涸 2nd)將UserA的位置信息發送到UserB和UserC可以使用? – 2014-10-09 07:10:40