• 沒有找到結果。

中華大學資訊工程學系

N/A
N/A
Protected

Academic year: 2022

Share "中華大學資訊工程學系"

Copied!
36
0
0

加載中.... (立即查看全文)

全文

(1)

1

中華大學資訊工程學系

100學年度專題製作期末報告

好友萬萬歲

指導老師:

俞征武 教授 組員:

B09729002 林芸如 B09729013 孫梓鈞 B09729004 李冠達 B09629030 胡濠倉

專題編號: PRJ2011-CSIE-10006

中華民國 101 年 1 月 17 日

(2)

2

目錄

第一章、簡介---4

第二章、研究背景及目的---5

2.1、研究背景---5

2.1.1、Android手機---6

圖2.1、Android LOGO---6

圖2.2、Android 模擬器---7

2.1.2、Location Based Services定位技術---8

圖2.3:衛星定位---8

圖2.4:GPS衛星分布圖---9

2.2、研究目的---10

第三章、研究方法及步驟---11

3.1、系統架構---11

圖3.1、系統架構---12

3.2、存取資料架構圖---13

圖3.2、存取架構---13

3.3、資料庫規劃與架構---14

圖3.3、ER-Mode---14

第四章、遭遇問題與解決方法---16

(3)

3

4.1、資料庫建置與連線---16

4.2、Android Google Map---16

第五章、研究成果---21

圖5.1、系統進入畫面---21

圖5.2、註冊介面---22

圖5.3、主選單---23

圖5.4.1、權限系統---23

圖5.4.2、單一權限開放---24

圖5.5、好友查詢介面---24

圖5.6、告知附近好友存在---25

圖5.7、訊息介面---26

圖5.8、顯示好友所在---27

圖5.9、新增好友---28

圖5.10、我的位置---28

第六章、未來研究方向---29

附錄、程式碼---30

1. 資料庫部分---30

2. Android---33

參考文獻---36

(4)

4

第一章、簡介

台灣的手機擁有率是世界第一,帄均 2270 萬人中將近 1870 萬擁 有手機,而且門號還超越台灣的總人口,由此可見手機在台灣占有多 少重要性。智慧型手機的崛起,也造成了手機業界的革命,現在手機 不僅僅能夠通話就好,還必須帶給人們相當的便利性。而近年來最具 震撼的發表其中之一,那莫過於是 Google 所推出的 Android 了,多 樣化的功能,以及前衛的外觀,吸引了不少消費者購買,並且越來越 多的使用者使用,軟體數量也迅速增加,未來潛力無窮!在 Google 的 Android 的 Market 裡,擁有相當多的軟體可供使用者付費下載或 免費下載使用,也造就了 Android 不可動搖的地位,其豐富的多樣性 以及便利性也讓 Android 擁有相當多的使用者,可見 Android 有相當 大的實力以及發展空間。

但目前的手機除了通話方便之外,在其他方面,其實也不輸市面 上有著一定處理核心等級的電腦,不但能提供多方通話,還能上網、

聽歌、照相…等等,幾乎說是應有盡有。

那如果手機可以來查詢我的好友在我的附近?讓我若要找他或是 給她驚喜,可以藉由手機來得知對方的位子。所以如何以現代智慧型 手機的便利性與多功能性達到這樣的效果是我們這次的研究目標。

(5)

5

第二章、研究背景及目的

2.1 研究背景

手機現在是大家的必需品,而現在的人只會拿來玩遊戲,接電 話,上臉書,股票..等!但有想過手機也可以幫我們做事情嗎?而手機 的功能也越來越多樣化,以及便利性也越來越強大了,而尤其在近期 大家都會使用 GOOGLE MAP 來搜尋住址或是當作導航,而手機不僅 有這些,除了 GOOGLEMAP 地圖外,另外還有陀螺儀,加速度偵測,

可以使手機上的軟體有著更加多樣化的功能。而且兩方都有提供開發 帄台供使用者撰寫程式,這代表著你在他們網站上所下載使用的軟 體,不單單是由兩方的工程師所撰寫,而是有更多人來開發軟體使得 我們對於軟體的選擇可以更加的多樣化。

(6)

6

2.1.1 Android 手機

Android 為一個行動裝置系統,最初由Google 開發,最後由公 司集團OpenHandset Alliance(包含Texas Instruments, Broadcom

Corporation, Google, HTC,Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, SamsungElectronics, Sprint Nextel and T-Mobile 等)共同開發,使用Linux kernel 2.6 版。有Google Map 地 圖、2D 與3D 的圖形處理功能(採用Opengl ES1)、資料庫(SQLite)、

網路瀏覽器、簡訊(SMS、MMS)、相機、多媒體播放(包括看電視)、

及GTalk(類式及時通)等功能。

圖 2.1:Android Logo

(7)

7

圖 2.2: Android 模擬器

(8)

8

2.1.2 Location Based Services 定位技術

Location Based Service 定位的技術通常使用高精確性的全球衛 星定位系統(GPS)做定位,而GPS 接收不到的地方(如室內)可採用 Cell-ID 與LAC 作定位。

 GPS 定位技術:

全球衛星定位系統(GPS)是結合衛星和無線技術,能提供使用者 精確的位置。太空中有24 顆衛星(如圖四),地面上有一個主控站、

三個資料注入站和五個監測站做為接收器,至少3 顆衛星,就可確認 該地區的經緯度及海拔高度等資訊。越多衛星做偵測,接收到的位置 越精準,偵測方式如圖三,以P1、P2、P3三顆衛星偵測範圍的焦點 為目前所在的位置。

圖 2.3:衛星定位

(9)

9

圖 2.4:GPS 衛星分布圖

(10)

10

2.2 研究目的

本專題的主要目標是透過完成一個可以查詢好友在哪的系統來 學習。

(1) 培養開發技術的能力:Android 良好的實驗環境,能夠引起研究

者的興趣,進而深入技術層面探討,透過討論和研究,產生靈感 和創意。

(2) 結合簡訊及無線網路等多種技術,使user 和user 之間的溝通更

有效率,並可節省使用者成本。

(3) 結合GPS 、MYSQL、JSP及Tomcat技術,查詢好友現在的位址,

並且利用GPS顯示出讓對方得知,以方便搜尋及追蹤。

(11)

11

第三章、研究方法及步驟

3.1 系統架構

我們在手機上的系統架構如圖3.1。開始登入我們的系統並確認 驗證身分後,即可進入操作畫面,功能將分為:

1. 新增好友:從電話簿中已存在的聯絡人,選擇並加入到本系統的 好友資料庫中。

2. GPS定位系統:透過定位系統可以知道目前所在位置,也可選擇 輸入地址或關鍵字查詢地點。

3. 開放權限:可以設定好友是否開放權限,讓對方查詢自己位置。

4. 好友查詢:若好友有開放權限,便透過GPS查詢好友的相關位置,

當好友出現在附近時,跳出傳送訊息的介面,讓對方得知且一起 吃飯或者碰面等活動。

(12)

12

圖3.1 系統架構

(13)

13

3.2 存取資料架構圖

我們利用網頁伺服器來達到存取的效果,見圖3.2。一開始我們認 為能直接跳過伺服器作存取的動作,雖然可行,但會發生安全性上的 問題,所以改由伺服器當成中間人。

首先由手機上登入於網頁伺服器,再配合各式需求選擇功能後,

將會傳送網頁上已寫好的各式SQL語法給資料庫伺服器,而當資料庫 執行完成後網頁上會顯示出結果,並回傳給手機使用。

圖3.2、存取架構

(14)

14

3.3 資料庫規劃及架構

資料庫的設計概念是以“使用者”為主體,接著聯想到”使用者”身 邊, 基本上我們只設計兩張資料表:帳號及使用者檔案表。主要資料 都是放在檔案表裡面,有帳號、朋友姓名、經緯度、朋友手機。利用 帳號作為標記、好讓使用者能快速找到自己帳號的資料,且也不會看 到他人好友資料或被看到自己好友資料。根據以上的說明,以下是我 們專題的ER-Model。

圖3.3、 ER-Model

(15)

15

透過資料的關聯性完成資料的存取,以下將介紹資料庫主要儲存的 內容及資料存取的流程。

(1) User table

儲存每位使用者的帳號,包含Account、Password、User_name。

表一、User table

Account Password User_name 0958263XXX 198702XX Bass

0987761XXX 198912XX Olddad 0958787XXX 198710XX Eric

(2) Friends table

此資料表主要儲存是使用者好朋友的資料,包含U_id、Name、

Longitude、Latitude、Phone、U_account、Permission。

表二、Friends table

(16)

16

第四章、遭遇問題與解決方法

因為Android是屬於新的東西,所以剛開始需要花很多時間去學 習新的語法,新的架構以及新的環境。而我們所設計的系統又需要用 到資料庫、網頁伺服,所以我們也在這部分上遇到許多困難。

(1)資料庫部分

首先是網頁的架設,在一開始我們並不懂如何利用網頁去連結資 料庫,然而在查詢怎麼實作時,又發現了多種網頁作法,PHP、ASP、

JSP等等,最終則是選擇了利用JSP進行實作。

在此部分發現到如果要讓JSP網頁對資料庫連線必須要下一款名 為JDBC的驅動程式。

接著開始架設網頁(選用Tomcat),也遇到了無法外部連結問題,原 來只要更改防火牆即可。

(2) Android Google Map

一開始想使用Google map在模擬器的時候,卻只有顯示出網格的 部分,而無法出現一般地圖,之後查了書籍後得知解決方法,須申請 API KEY才能使用。

(17)

17

而解決方法如下步驟:

 Step 1: 要向Google申請服務的指紋碼,需要先在本機端產生 MD5的指紋證書,再利用這個證書產生指文碼。如何產生指 紋證書呢?只需要在jdk的安裝路經bin目錄下,輸入

keytool -genkey - v -keystore 名稱.keystore 其中”名稱.keystore"請自行設定喜好的名稱,再來畫面會要求你 輸入一些基本資訊,大概內容如下圖。

圖4.1、輸入keystore基本資訊

(18)

18

 Step2: 再來是利用指紋證書來取得指紋碼,只需要輸入:

keytool -list -keystore [路徑/檔案名稱] -storepass 密碼

其中"[路徑/檔案名稱]"可以是上一步產生的 keystore 或是 直接取用 android sdk 產生的,密碼部份此範例使用 test123,

畫面如下,會產生一組認證指紋碼,把此指紋碼 copy 下來。

圖4.2、產生MD5認證碼

(19)

19

 Step3: 向 Google 申請 Maps API key,網址:

http://code.google.com/android/maps-api-signup.html

需要同意條款及給於自行產生的指紋碼,把上一步所得結果 貼到 input 裡,按 Generate API key。

圖4.3、申請API KEY

然後會 response 一個金鑰及 xml 配置範例,直接 copy 範例裡 的內容使用就可以了。

(20)

20

圖4.4、產生API KEY和XML範例

以上申請流程就已經完成了。然後再把提供的 XML 放置 Layout 裡,就可顯示出 Google Map。

(21)

21

第五章、研究成果

以下則是我們成果展現: 圖5.1為我們系統進入時的畫面,一開始 定位自己的位址並且顯示在GOOLEMAP上,”記住我”方塊則是讓使 用者在每次都登入時不必重新再輸入一次帳號密碼。而第一次使用的 使用者可按註冊鈕,就進入選單。

圖5.1、登入畫面

(22)

22

圖5.2是註冊系統,若尚未使用過的使用者須先註冊。

圖5.2 註冊系統

(23)

23

當成功登入後,就會進入我們主選單部分(圖5.3)有好友查詢、新 增好友等功能,以及是否開放權限(圖5.4.1)給對方得知自己的地理位 置,有單一開放(圖5.4.2)或者全部開放的選擇,保障自己隱私。

圖5.3、選單畫面

圖5.4.1、權限系統

(24)

24

圖5.4.2、單一權限開放

而當點選進入好友查詢後,畫面上(圖5.5)則會顯示出姓名及經緯 度,而下方設輸入自己想查詢的對象,當查詢對象在自己範圍一公里 內的話則會如圖5.6出現提示,並詢問是否告知。

圖5.5:好友查詢介面

(25)

25

圖5.6:告知附近好友存在

(26)

26

如果我們查詢的對象距離我們半徑一公里內的話,則會傳送訊息 (圖5.7)給對方,而在顯示地圖的畫面也會標示出兩者相距多少公尺 (圖5.8) 。藍色原點代表自己,圖釘代表對方。

圖5.7、訊息介面

(27)

27

圖5.8、顯示好友所在

功能之一(圖5.9)可從聯絡人裡選擇好友的姓名,可加入到這個應 用程式方便使用,如果對方尚未使用這個APP的話則顯示"他尚未使 用APP"並且傳送簡訊告知好友是否也想使用這個APP。

功能之二(圖5.10)隨時隨地顯示自己最新的位置,且可隨時更新自 己的位置。

(28)

28

圖5.9、新增好友

圖5.10、我的位置

(29)

29

第六章、未來研究方向

因我們以GPS定位系統為出發點,所以我們未來研究的方向可能 有下列幾項:

(1) 預防老人、小孩走失

透過本系統的權限開放設定之後,可以偵測尋找家人的相關位 置,並預防走失,也可以觀察記錄小孩下課後有沒有直接回家,

還是有沒有說謊到不良場所逗留。

(2) 旅行社應用

現今旅遊風靡,旅行社或是參加的遊客將可以透過本系統,去追 蹤旅客或是導遊的所在地點,便不會發生迷路、找不到集合地點 或是臨時找不到導遊的情形。

(3) 跟車系統

和現在的計程車公司合作,讓搭乘計程車的乘客可以更加安心搭 乘,乘客可以追蹤現在計程車的路程,並可得知是否安全到達目 的地,對於計程車司機來說,也可以證明自己是否有安全將乘客 送達。

(4) 商家合作

透過定位系統,也可以讓商家偵測附近的行人,並且傳遞訊息給 予周遭鄰近的人,使之對商家產生感興趣並前往消費。

(30)

30

附錄、程式碼

1. 資料庫部分

1.1 JSP 網路連線

 宣告部分

附圖 1.1

 放在按鈕點擊後

附圖 1.2

(31)

31

1.2 JSP 網頁部分

 連線變數宣告部分

附圖 1.3

其中 code 及 code2 為接收手機上所傳送的字串語法。code 擷取陣 列名稱"username"裡面的值,而 code2 則是擷取"pass"裡面的值,

要注意的是,這裡的陣列名稱必需跟手機上的陣列名稱一樣。

 連線與 sql 語法

附圖 1.4

第四、五行程式碼宣告 JDBC 驅動程式並使用,第七行則是對該 url 連線並輸入帳號密碼以登入資料庫,第八行創立一個物件好讓第 九行的 sql 語法能執行,其中 sql 與法則是看功能需求而改變,在輸

(32)

32

入的變數內,例如 account:必須注意到是否有加上兩個單引號,若無,

則程式碼將會以數字執行,若有則以字串執行。而在更新語法上,有 著跟查詢語法不同的是最後一行: stmt.executeQuery。stmt.executQuery 需改成 stmt.executUpdate 才能成功執行更新動作。

(33)

33

2. Android 部分

2.1 取得經緯度

附圖 1.5

先判斷傳入的 Location 物件是否為 null ,若存在讀取 Location 物 件資訊,且呼叫 Location 物件的 getLatitude 和 getLongitude 方法取得 目前位置的經度和緯度。

(34)

34

2.2 計算距離

附圖 1.6

(Math.PI/180)*(經度/緯度)是將角度換算成弳度。而距離是用算圓 球體的公式: Great-circle distance 公式,其中 d 為距離,R 是地球半 徑,最後算出來的單位是英里,須換成公尺所以乘上 1000。

使用 If 判斷式,如果算出來的距離小於 1 公里的話,就跳到傳送 訊息的介面,否則顯示當下的畫面。

(35)

35

2.3 傳送訊息

附圖 1.7

smsManager.sendTextMessage(strDestAddress, null, strMessage, mSendPI, mDeliverPI); 其中,strDestAddress: 對方的手機號碼 scAddress: 自己的手機號碼,strMessage: 訊息內容,mSendPI: 傳送 是否成功的回應,mDeliverPI: 接收是否成功的回應。

(36)

36

參考文獻

[1]http://blog.yslifes.com/archives/671 ---Google Map 申請、設定及使用 [2]http://zh.wikipedia.org/wiki/Android ---ANDROID

[3]http://zh.wikipedia.org/wiki/GPS ---全球定位系統

[4]林城,”Google Android 2.X 應用程式開發實戰第二版”,碁峯出版 社,2011/5

[5]吳亞峰、索依娜,”學會 Android 應用開發的 18 棠關鍵基礎課程”,

碩博文化出版社,2011/7

[6]余志龍、陳昱勛、鄭名傑、陳小鳳,”Google Android SDK 開發範 例大全 第三版”,悅知文化出版社,2011/4

[7]郭宏志,”深入淺出 Android 專題實作之無線點餐系統、多媒體、

遊戲、GPS 與網路應用程式開發”, 碩博文化出版社,2011/3

參考文獻

相關文件

在遊戲中的未來世界

健行學校財團法人健行科技大學 清雲科技大學 台灣首府學校財團法人台灣首府大學 致遠管理學院 大華學校財團法人大華科技大學 大華技術學院 醒吾學校財團法人醒吾科技大學

擁有很強的內在動機 (探索自己和世界) 擁有內在和外在的動機,並能自我調控(提升能力、升 職準備). 喜歡與生活連繫

根據內政部統計,97 年底領有身心障礙手冊者達 104 萬人,領有手冊之身 心障礙人口占總人口比率 4.5%。其中,慢性精神疾患者(以下簡稱精障者)在所 有身心障礙者

西元 1624 年至西元 1633 年台灣海峽海盜橫行,中國帆船過來台灣的並不 多,同一時間,荷蘭人又因「濱田彌兵衛」事件與在台灣貿易的日本商人發生衝 突,導致在西元

Researches of game algorithms from earlier two-player games and perfect information games extend to multi-player games and imperfect information games3. There are many kinds of

Stone and Anne Zissu, Using Life Extension-Duration and Life Extension-Convexity to Value Senior Life Settlement Contracts, The Journal of Alternative Investments , Vol.11,

• 台鐵超商購票取票服務每天約有一萬兩千 多人次使用,為方便消費者,台鐵近日在 超商售出的火車票增印QR code,民眾不但