小弟目前大三要做專題,架構上遇到些瓶頸,不知道該朝哪個方向開發。
主要是手機端的Android軟體跟伺服器,
之前完全沒有做過這類程式的經驗,
想要詢問大家幾個問題,
如果有些問題很笨,
還是被說沒爬文就敬請見諒了!
如有心替小弟解惑的大大,可以在這裡提出你們看法與意見,我會虛心接受感恩
以下簡述
我們是想要做有關手機的防身軟體。
手機端方面:
使用者(會員機制),與伺服器保持連線,定時傳送gps位置,並即時更新在google map上面,
當遭遇危險時,搖晃手機,送出求救訊息給伺服器,伺服器會去告知相對應的緊急聯絡人。
伺服器端:想要知道能與手機保持連線的伺服器應該是要架設哪種伺服器,還是只要寫一支socket程式?
但是我所希望的伺服器是可以做到,有會員機制,會查詢與寫入資料庫(gps位置、會員資料、緊急聯絡人等。),還要可以傳送email給緊急聯絡人(這部份可以改用push訊息的方式)
一切的重點是我分布太清楚何謂server,感覺寫一支簡單的socket程式也可以達到某些目的,
但是想要架一個server,應該需要哪種類型的才能來達成我需要的功能?
KaKuDoKu wrote:
你需要的是支援 E-...(恕刪)
android 方面應該是沒問題,之前也都有用eclipse,基本的拉layout那些都還算熟悉。
因為我想要防身軟體在沒有異常的時候,
像是行進中,把資料存到資料庫中,即時的更新目前的路徑,這個動作不希望透過server,
而發生異常時,server擁有主控權,對資料庫去做查詢他設定的緊急聯絡人,發送email通知
所以android程式,如果要去存取mysql的資料庫的話是不是就要了解怎樣用jdbc(直接的存取)?
還有就是 mysql 在存取的時候,本身有提供驗證帳號密碼的機制嗎?
不然這樣只要把手機程式反組譯出來看到你存取哪個資料庫,就可以把整個資料庫的資料抓走了?
還是你的意思是說,手機的程式要先透過php的網頁才能對資料庫做存取的動作?
或者能提供我一些參考資料或網站 謝謝您! 幫助很大!
因為對這些都是粗略的了解,所以有滿多的問題,敬請見諒!
以下是我建立為了製作專題做的協作平台
如果大大心有餘力 可以參考這份ppt 提共意見 謝謝
https://sites.google.com/site/idefenseapp/idea/ver1
一個是資料庫儲存伺服器, 另一個是接Arduino的伺服器(這個看起來是主機)
其實整合成一個就可以了
上面存會員資料, 會員密碼, gps, e-mail
android手機端只要使用WEBVIEW, 不用考慮sql
如
webview.loadUrl("http://www.ChunTseLin.com/data.php?name=ChunTseLin&pwd=1234&longitude=124.11&latitude=24.22");
定時執行, 送 gps 資料資料庫儲存伺服器(www.ChunTseLin.com)
當然. 資料可以加密, 就不怕被偷看了
而資料庫儲存伺服器看到有人連過來
http://www.ChunTseLin.com/data.php?name=ChunTseLin&pwd=1234&longitude=124.11&latitude=24.22
php 網頁就會先看使用者 ChunTseLin 和 密碼1234是不是自己會員
如果是, 就把(124.11, 24.22) 寫到資料庫中
所以所有有關 sql 的程式, 都是用 php 寫即可
當然還需要另一個顯示地圖的 map.php, 用 sql 把資料讀出來顯示
現在的問題應該是, 由於你要檢查斷線和接Arduino
就沒辦法用別人的虛擬主機
如果你會自己架伺服器, 那就沒問題了
KaKuDoKu wrote:
資料庫儲存伺服器
因為我對架伺服器這個詞,不慎理解,
雖然平常都很冗統的說架伺服器去做連接來解決...像我的ppt裡面自己也這樣說,
可是完全不知道架什麼樣或是什麼形式的伺服器,所以你的意思是說,
架一個http伺服器,像是網頁的那種嗎?
所以就用Apache PHP MySQL phpMyAdmin 類似這樣的組合,去寫你說的php網頁在對mysql去做存取?
然後用post get 那種方法將資料送給php網頁去做處理?所以送每一筆資料都要包含會員帳號與密碼?
你說的方法如果我沒有理解錯誤的話,確實給了我很大的幫助!
所以一開始的建立會員資料的部份也是可以用同一個方法去讓php去處理?
還有你最後說的map.php是要把google map用網頁的方法呈現,而不是用原本android 內的api?
不過你解決的問題是我整體需要伺服器處理的事件一半
建立會員資料 查詢會員資料 v
傳送gps位置 查詢gps位置 v
我還差一個
異常時(有五種異常)需要發送email(伺服器要去發送)給緊急聯絡人
(會去查詢資料庫相對應的緊急聯絡人) X
php可以送email嗎?
還有其實我判斷異常的方法
其實有五種
時間異常 (行走時間大於原先預設路徑行總時間的平均值)
速度異常 (伺服器會計算數次傳送的gps位置的距離與接收的時間是否,
大於人類所能及的速度(被車子擄走))
路徑異常 (偏離軌道的意思)
異常斷線 (php的方式應該就不是一直保持連線吧?)
搖晃手機 (三軸異常就送異常訊息)
這些有辦法都用php去做嗎?
ChunTseLin wrote:
架一個http伺服器,像是網頁的那種嗎?
所以就用Apache PHP MySQL phpMyAdmin 類似這樣的組合,去寫你說的php網頁在對mysql去做存取?
對
ChunTseLin wrote:
然後用post get 那種方法將資料送給php網頁去做處理?所以送每一筆資料都要包含會員帳號與密碼?
對, 不過當然只要有一次 POST 成功, 下次也可以不用送NAME&PWD
就看 PHP 怎麼寫
ChunTseLin wrote:
所以一開始的建立會員資料的部份也是可以用同一個方法去讓php去處理?
對, 不過這時應該是用另一個 PHP, 讓使用者建立(都可以啦)
ChunTseLin wrote:
還有你最後說的map.php是要把google map用網頁的方法呈現,而不是用原本android 內的api?
怎麼做都可以, 不過我是這樣想的
ChunTseLin wrote:
php可以送email嗎?
可以.
時間異常. 速度異常 , 路徑異常 , 搖晃手機
這些要用 Android 去做, 如果有異常, 直接 post 給伺服器
讓伺服器直接送 E-MAIL, 如
webview.loadUrl("http://www.ChunTseLin.com/data.php?name=ChunTseLin&pwd=1234&alarm=1");
至於異常斷線, 就要用 PHP, 一段時間沒收到 POST, 就直接發 E-MAIL
如果你不會架, 我建議直接用別人的虛擬主機
先不要考慮 Arduino
至於異常斷線, 可以用一招作弊法
隨便找一台 PC, 打開你的網頁, 不用作任何事
然後 PHP 網頁具有每段時間自動更新的功能
就是加上 header('Refresh: 60');
這樣 PHP 中的程式就會每 60 秒自動執行一次
而且根本沒人會知道有這台 PC
不過, 或許有可以定時執行PHP的免費主機也說不定
那就不用這樣累了
至於 PHP 收送 SMS, 我覺得應該可以找的到
也許不好找或不是免費的而已
KaKuDoKu wrote:
時間異常. 速度異常 , 路徑異常 , 搖晃手機
這些要用 Android 去做, 如果有異常, 直接 post 給伺服器
讓伺服器直接送 E-MAIL, 如
webview.loadUrl("http://www.ChunTseLin.com/data.php?name=ChunTseLin&pwd=1234&alarm=1");
至於異常斷線, 就要用 PHP, 一段時間沒收到 POST, 就直接發 E-MAIL
你說的這個方法真不錯!讓兩邊彼此分工!
伺服器就是去做存取跟發送異常訊息
可是這樣可以提供給多個使用者嗎?
也許在demo這個專題的時候只有一個人
好像最後一個異常斷線這個地方比較有難度!
Arduino那個部分其實延伸想要做的
當初想說是要做成Arduino+壓力感測器+3g模組放到一個娃娃裡面,變成是一個吊飾,
就是簡易版的求救方法,沒有手機直接使用也可以,因為已經有相對應的資料庫可以去做存取了,
不過麻煩的是就是伺服器端也有有一個可以收sms訊息的Arduino,所以我們暫時沒有要做
另一方面就是說手機求救太樹大招風很明顯(怕被搶走),如果有吊飾就可以有第二次的機會可以求救。
內文搜尋
X




























































































