2014-09-06 73 views
0

所以基本上我已經做了一些小應用程序在過去,但這是我第一個'正確'的應用程序。如何使用相同的應用程序檢測附近的Android設備

該應用程序的主要功能之一,我掙扎的一點是我需要能夠與所有其他用戶登錄到應用程序中填充ListView,但我只想顯示用戶在設定距離內,例如10米。

我嘗試使用藍牙來實現這一點,但是這並沒有奏效。我現在想用位置服務來做到這一點。

我的想法是必須每隔幾分鐘纔會將設備的位置發送到外部服務器,然後所有其他設備都可以運行將其位置與此服務器上的其他位置進行比較的功能。

有沒有人知道我可以如何實現這一點,或知道涵蓋更簡單的主題的任何教程。謝謝

+0

parse.com能做到這一點,作爲。服務器和查詢最近,然後在應用程序中確定最近的距離是否在10米以內:https://www.parse.com/docs/android_guide#geo-query – cYrixmorten 2014-09-06 22:15:35

回答

4

免責聲明:我不是一個Android開發者,但是這似乎是一個設計問題,而不是實現問題,所以希望我下面的評論可能是一些使用...

我不不認爲有一個API可以設置爲「true」來獲得此功能,所以我認爲您將不得不定製所有移動部件(並且有一對)。我想一般的過程是這樣的:

在客戶端:

  1. 在客戶端登錄的用戶在服務器與某種身份(即「[email protected]」)
  2. 每X分鐘客戶端應用程序獲取當前位置(即「100N 90E」)並將其發送到服務器
  3. 客戶端每隔X分鐘輪詢服務器以查看10英里內的人(即「[email protected] 「,」[email protected]「)

在服務器上:

  1. 需要某種身份驗證的端點用於獲取用戶的身份
  2. 需要一個端點用戶登記位置(「[email protected]爲100N 90E」)
  3. 需求的服務,找出每個用戶有多遠相互
  4. 需要一個端點返回X英里(從#3生成的列表)的用戶

這些步驟中的每一個應該不是難事如果你願意的話,你可以在服務器第3步中真正使用分配算法。

,你可以問自己一些問題是:

  • 「?如何建立一個服務器偵聽HTTP請求」 - 看看Node.JS的簡單解決方案
  • 「我如何在android中獲取用戶的位置?「 - 簡單的谷歌搜索發現很多文檔
  • 的‘我怎樣寫一個服務,不斷執行操作?’ - Node.js的將這個
  • 再次求助:」我會在哪裏存儲用戶的位置和他們的距離相互?」 - 你可以看看像CouchBase或MongoDB的一個NoSQL的選項,或者你可以使用MySQL更加結構化的數據庫

希望這有助於...

+0

是的,這正是我想要做的,我只是不知道如何將其實施到我的應用程序。 – JoshLittlewood 2014-09-06 22:01:15

+0

@JoshLittlewood - 我讓我的答案更強大一點。這個實現將會是一個自定義工作,所以不確定你會找到一個完全符合你想要的樣本,但是如果你遇到任何特定的問題,那麼我肯定有人在stackoverflow上幫助... – jt000 2014-09-06 23:29:52

+0

@JoshLittlewood Couchbase非常適合NoSQL文檔數據存儲,並且適合您正在嘗試做的事情,因爲您可以在開發應用程序/功能時演變架構。 – sweetiewill 2014-09-08 15:08:59

相關問題