Tuesday, January 19, 2016

Android 搵人程式 (一) 序

本身唔係寫開 Android apps, 但係每隔幾年都會寫下野.
Google 就年年變更, 每次再寫都要重頭黎過.

搵人程式的由來

n 年前 Google 既地圖中, 提供左搵人既功能.
只要你批准左, 對方就可以隨時搵到你既位置.
後尾呢個功能取消左, 只好自己寫番個搵人程式個出黎.

當時個程式, 為左唔想長期上網, 將網路通訊改為 SMS.
因為通常電話 Plan 都會有 SMS 送, 基本上都用唔哂.
而且, SMS 可以收發既範圍, 肯定比 data network 大好多.
甚至出左國都可以免費接收.
不過, 海外既 SMS 要比錢發送, 用唔到街上或者酒店既免費 WiFi.  有利又有弊.


基本流程

整個流程好簡單, 主要分開左兩個程式:  WhereAreYou 同埋 IAmHere
睇個名都應該估到, WhereAreYou 就係去搵人既程式, 而 IAmHere 就係回報地點既程式.
首先 WhereAreYou 會將一個 keyword 經 SMS 發送比一個電話, 然後等待回應.
如果呢個電話本身裝左 IAmHere 行緊既, 就會自動檢查 SMS,
如果發現 SMS 內容係自身設定既 keyword, 就會作出回應.
IAmHere 會先讀取當時既 GPS 位置, 再經 SMS 回傳番去比發出 keyword 既電話.
而 WhereAreYou 收到呢個回傅既訊息, 就會將位置在 Google Map 上顯示出黎.


再次修改的原因

自從有左個程式之後, 老虎好放心比阿仔自己番放學.
但係, 由於 GPS 接收, 受到好多因素影響, 特別係香港多高樓大廈, 有時會出現好大既誤差.
之前就試過無端端回報左好遠既地點, 嚇親隻老虎, 好在後尾自己修正番.

其實幾年前, Android 機除左可以有 GPS 位置 (provider 分左 gps 同 network 既) 外, 仲有個 fused location.
Fused location 如果無理解錯, 應該係根據附近既網絡裝置, 對比 Google 既資料庫, 推算出你當前既位置.
準確度未必差過 gps, 而且唔會太受高樓大廈影響, 出現超大誤差既機會比較細.
之前有玩過 GPS 定位既朋友應該知道, 以往等 GPS 定位都要時間, 仲要睇下接收到幾多個人造衛星既訊號, 同埋訊號既強度是否足夠, 先至可以定到位, 穿插高樓大廈就肯定好差.
家陣一開 Google maps, 幾乎即時定到位, 就算鬧市中的可以幾準下.  分別真係好大.

所以, 準備研究下, 點樣可以同時接收埋 fused location 回傳番去.
而 WhereAreYou 就同時顯示 gps 同 fused locattion 既位置作參考.
由於位國來源不出, 如果相距不遠, 就證明應該都幾可信.
否則, 如果一個東一個西, 就可以自行判斷.
至於點解唔直用 Fused location, 因為.....都唔知點講, 感覺上 GPS 可以去到比較精確既位置, 而且比多個參考都無壞....


修改歷程

由於每次再改都會隔幾年, 期間 Google 又改左唔少野.
加上自己無攪幾年, 幾乎連一D android apps 既基本概念都唔記得哂.
今次嘗試重頭黎過, 希望可以記低 D 重點.
呢度會用黎將有關既既連結放埋一齊, 下次再改時, 就唔駛四維搵料.



No comments:

Post a Comment