已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本科畢業(yè)論文基于安卓系統(tǒng)的手機(jī)位置跟蹤應(yīng)用程序的設(shè)計(jì)二級(jí)學(xué)院機(jī)械與電子工程學(xué)院專業(yè)通信工程完成時(shí)間2016年04月10日基于安卓系統(tǒng)的手機(jī)位置跟蹤應(yīng)用程序摘要在ANDROID移動(dòng)應(yīng)用開發(fā)中,手機(jī)防盜追蹤功能是一項(xiàng)重要的安全技術(shù),而本軟件致力于手機(jī)的防盜與追蹤,主要研究基于安卓系統(tǒng)的定位,電子圍欄,手機(jī)SIM卡安全,以及短信追蹤功能。軟件共分為安卓端,服務(wù)器端,數(shù)據(jù)庫端,與網(wǎng)頁端四個(gè)方面,由它們可以實(shí)現(xiàn)記錄定位信息,匹配手機(jī)信息,保障手機(jī)安全并能隨時(shí)隨地知道你的手機(jī)在哪里。本文主要分為軟件總體功能介紹,以及各個(gè)應(yīng)用端的設(shè)計(jì)與實(shí)現(xiàn)和最終的軟件調(diào)試。首先介紹了本軟件的主要功能和設(shè)計(jì)思路以及設(shè)計(jì)的意義,再分開詳細(xì)描述每一個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn),如安卓端功能,服務(wù)端功能實(shí)現(xiàn)等。最后就是對(duì)系統(tǒng)的整體測(cè)試,測(cè)試發(fā)現(xiàn),本軟件已經(jīng)滿足需求說明書上的需求,可以正常使用。關(guān)鍵詞安卓;防盜追蹤;安全;軟件引言隨著移動(dòng)通訊產(chǎn)業(yè)的快速發(fā)展,手機(jī)成為了我們生活中不可缺少的一部分,它不僅可以打電話,發(fā)短信,更可以瀏覽網(wǎng)頁,聊天,甚至購(gòu)物,銀行轉(zhuǎn)賬等等,相信在不久的將來,手機(jī)的業(yè)務(wù)也能逐漸的取代電腦,成為一個(gè)互聯(lián)網(wǎng)的終端,向外界提供更多的服務(wù)。而谷歌推出的一個(gè)專為移動(dòng)設(shè)備設(shè)計(jì)的操作系統(tǒng)平臺(tái)ANDROID,更是加速了手機(jī)產(chǎn)業(yè)的發(fā)展,但是,因?yàn)榘沧肯到y(tǒng)是開放源代碼的,且功能強(qiáng)大,容易使用,在我們的日常生活中應(yīng)用十分廣泛,所以針對(duì)手機(jī)的防盜追蹤技術(shù)就顯得更為重要。手機(jī)里存有我們大量的個(gè)人信息,甚至一些非常敏感的信息,要是丟失了該多危險(xiǎn)。本軟件是基于安卓平臺(tái)開發(fā)環(huán)境,在智能手機(jī)上設(shè)計(jì)、實(shí)現(xiàn)基于安卓系統(tǒng)平臺(tái)的具有手機(jī)防盜追蹤功能的軟件,有了它,再也不用擔(dān)心找不到你的手機(jī)了。通過本次設(shè)計(jì)可以鍛煉自己對(duì)所學(xué)理論知識(shí)和技能的綜合運(yùn)用,提高自己對(duì)文獻(xiàn)資料的搜索和信息處理能力,培養(yǎng)自己對(duì)軟件開發(fā)知識(shí)的能力,進(jìn)一步提高自身的知識(shí)素養(yǎng)和設(shè)計(jì)論文的技巧。1軟件介紹此軟件是基于安卓系統(tǒng)開發(fā)的一個(gè)安全軟件模塊,主要有定位,追蹤,防盜等功能。用戶可在手機(jī)查看自己的位置,家人也可以在電腦查看手機(jī)所在位置,同時(shí)還有電子圍欄,更換SIM手機(jī)卡告警,收到短信回復(fù)定位功能。11軟件功能本軟件是基于安卓系統(tǒng)的手機(jī)位置的跟蹤應(yīng)用程序,主要實(shí)現(xiàn)了以下幾點(diǎn)功能(1)定位功能采用了第三方高德地圖實(shí)現(xiàn)定位功能,同時(shí)高德地圖集成了電子圍欄,地圖顯示等功能,在安裝了本軟件的安卓手持客戶端,和任何一臺(tái)有瀏覽器軟件的電腦端,都可以查看到手機(jī)所在的位置。(2)手機(jī)防盜功能每次當(dāng)手機(jī)更換SIM卡,手機(jī)在開機(jī)和開啟本軟件時(shí)會(huì)匹配SIM卡信息,如果不匹配將會(huì)發(fā)送告警到事先設(shè)置好的監(jiān)控手機(jī)號(hào)碼。(3)收到短信回復(fù)位置功能當(dāng)手機(jī)收到事先設(shè)置好的監(jiān)控手機(jī)發(fā)來的短信,并且內(nèi)容為“在哪”,則手機(jī)會(huì)回復(fù)地理位置給監(jiān)控手機(jī)。12軟件設(shè)計(jì)思路一座大樓的最初原型就是一張?jiān)O(shè)計(jì)圖紙,一個(gè)軟件也是一樣,只有先預(yù)想它要有什么樣的功能,才能慢慢的去實(shí)現(xiàn)它,完善它,所以軟件的流程圖,就是一個(gè)軟件的核心,軟件的最初原型,和最終功能。圖2軟件設(shè)計(jì)總流程圖(1)在開啟本軟件的時(shí)候需要先設(shè)置好本軟件需要用到的一些安全信息,如手機(jī)監(jiān)控號(hào)碼,圍欄半徑,還有設(shè)置好電子圍欄的中心點(diǎn)(默認(rèn)為最初安裝軟件得到的經(jīng)緯度為中心點(diǎn))。(2)在軟件首頁可以通過不同的按鈕選擇不同的功能。(3)換卡功能在每次開機(jī)和開啟本軟件自動(dòng)匹配數(shù)據(jù),如果與存儲(chǔ)的數(shù)據(jù)不一致,則會(huì)發(fā)出報(bào)警。(4)定位功能使用第三方軟件高德地圖實(shí)現(xiàn),高德地圖還集成了電子圍欄功能,因此只需要使用高德地圖的API就可以輕松的做到定位以及電子圍欄功能。在完成定位的同時(shí),發(fā)送定位信息到服務(wù)器端,在電腦上通過鏈接訪問網(wǎng)頁就可以在電腦上查看到手機(jī)的位置,方便又可靠。(5)通過監(jiān)聽手機(jī)的短信廣播和短信數(shù)據(jù)庫的變化來判斷是否收到來自監(jiān)控手機(jī)號(hào)碼的短信,是否應(yīng)該回復(fù)手機(jī)的定位信息。13設(shè)計(jì)本軟件的意義手機(jī)在飛速發(fā)展,它的功能也不再局限于接打電話,強(qiáng)大的信息處理能力使手機(jī)成為我們身邊不可或缺的重要助手?,F(xiàn)如今,手機(jī)的數(shù)據(jù)傳輸速度越來越快,智能化程度也是越來越高,手機(jī)能處理的業(yè)務(wù)也變得越來越多,它在我們的日常生活中的重要性已經(jīng)不言而喻,手機(jī)里存儲(chǔ)了我們大量的信息,這些信息一旦隨著手機(jī)的丟失而丟失的話,就會(huì)給我們的生活,個(gè)人隱私,財(cái)產(chǎn)等帶來巨大的威脅。最近,MCAFEE對(duì)美國(guó)、日本和英國(guó)等3G業(yè)務(wù)比較發(fā)達(dá)國(guó)家的2000名用戶進(jìn)行了調(diào)查,研究發(fā)現(xiàn),平均有861的用戶對(duì)于手機(jī)所引發(fā)的安全問題有所擔(dān)心。擔(dān)心的內(nèi)容包括私人信息泄露,藍(lán)牙間諜或被遠(yuǎn)程監(jiān)控、手機(jī)病毒影響到朋友和同事關(guān)系等。6隨著手機(jī)功能的豐富及手機(jī)與我們?nèi)粘I畹木o密關(guān)系,使得手機(jī)信息安全,再一次成為關(guān)注的焦點(diǎn),本軟件致力于手機(jī)的防盜和追蹤功能,隨時(shí)隨地讓你知道你的手機(jī)在哪里,再也不怕找不到自己的手機(jī)了。2安卓端21安卓系統(tǒng)簡(jiǎn)介ANDROID是GOOGLE公司推出的一款致力于移動(dòng)便攜設(shè)備的系統(tǒng),這個(gè)系統(tǒng)主要由操作系統(tǒng)、中間件、用戶界面和用戶軟件組成,是目前主流的手機(jī)系統(tǒng)之一,2011年在全球的市場(chǎng)份額超過了塞班系統(tǒng),2013年全球市場(chǎng)份額已經(jīng)達(dá)到781,它能夠取代塞班系統(tǒng)不是沒有原因的,安卓系統(tǒng)最大的優(yōu)點(diǎn)就是開源,免費(fèi),也就是說安卓系統(tǒng)是開放源代碼,而且不收費(fèi)的,其次就是開放性,擴(kuò)展性非常高,開發(fā)比較容易,所以才會(huì)存在安卓市場(chǎng)的大量軟件的存在。22安卓系統(tǒng)結(jié)構(gòu)以及主要組件首先我們看下安卓的系統(tǒng)結(jié)構(gòu)圖1圖1ANDROID系統(tǒng)架構(gòu)圖ANDROID的系統(tǒng)架構(gòu)主要分成了應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和LINUX核心層,層次分明,是一個(gè)標(biāo)準(zhǔn)的分層結(jié)構(gòu)。而開發(fā)者一般只需要對(duì)應(yīng)用層進(jìn)行開發(fā),就能開發(fā)出各種各樣的APP軟件了。本軟件就屬于應(yīng)用程序?qū)拥囊粋€(gè)APP軟件。其中應(yīng)用層最主要的幾個(gè)組件,同時(shí)也是本軟件所需要應(yīng)用到的幾個(gè)分別是ACTIVITY活動(dòng),BROADCASTRECEIVE廣播接收器,BROADCAST,SERVICE服務(wù),下面簡(jiǎn)單的介紹下它們。(1)ACTIVITY活動(dòng)應(yīng)用程序中,一個(gè)ACTIVITY通常就是一個(gè)單獨(dú)的屏幕,也可以說一個(gè)ACTIVITY對(duì)應(yīng)了一個(gè)界面,一個(gè)應(yīng)用程序就是由多個(gè)ACTIVITY組成,它上面可以顯示一些控件也可以監(jiān)聽并處理用戶的事件做出響應(yīng),所以ACTIVITY就是與用戶交互的媒介工具。(2)BROADCASTRECEIVE廣播接收器廣播機(jī)制是安卓系統(tǒng)的一個(gè)很大的特點(diǎn),系統(tǒng)中發(fā)生的各種事件都會(huì)發(fā)出一個(gè)廣播,例如,收到一條短信就會(huì)發(fā)出來短信了的廣播,開機(jī)成功就會(huì)發(fā)出一個(gè)開機(jī)成功的廣播等等。但是廣播還有一個(gè)特性,就是不管你的程序接不接收這個(gè)廣播,廣播都會(huì)發(fā)出,就像我們?nèi)粘I钪械膹V播電臺(tái)一樣,這也對(duì)我們開發(fā)軟件有很大的幫助,比如我們需要監(jiān)聽來短信了這個(gè)事件,我們只需要在程序中寫一個(gè)廣播接收器接收這個(gè)廣播,再做我們需要做的操作就可以實(shí)現(xiàn)我們的功能,非常簡(jiǎn)便。(3)SERVICE服務(wù)SERVICE類似于WINDOWS中的服務(wù),沒有界面,只是在后臺(tái)運(yùn)行,由于它是不可見的,所以服務(wù)不能自己運(yùn)行,只能通過調(diào)用CONTEXTSTARTSERVICEINTENTINTENT或CONTEXTBINDSERVICEINTENTINTENT來開啟一個(gè)服務(wù),而正是由于不可見,我們可以在后臺(tái)做一些不需要界面輔助的事情,比如本軟件在后臺(tái)定位,并回傳信息給服務(wù)端。(4)CONTENTPROVIDER內(nèi)容提供者CONTENTPROVIDER是一個(gè)可以共享數(shù)據(jù)的組件,這些數(shù)據(jù)可以存儲(chǔ)在文件(FIEL)、SQLITE數(shù)據(jù)庫、或者其他合理的方式,其他應(yīng)用可以通過CONTENTRESOLVER類從該內(nèi)容提供者中獲取或存入數(shù)據(jù),但是一般我們開發(fā)的應(yīng)用程序不會(huì)把自己應(yīng)用的數(shù)據(jù)共享出來,只有類似于通訊錄這些才會(huì)供給其他程序調(diào)用。23安卓項(xiàng)目結(jié)構(gòu)搭建好了安卓的環(huán)境就可以進(jìn)入開發(fā)階段了,首先我們來看看一個(gè)安卓APP包結(jié)構(gòu)圖3安卓包結(jié)構(gòu)圖(1)SRC目錄源文件存放目錄存放代碼(2)LIBS目錄第3方功能JAR包存放庫文件和第三方JAR包(3)RES目錄項(xiàng)目?jī)?nèi)部資源存放圖片,布局文件,菜單,文本資源等(4)GEN目錄工具自動(dòng)維護(hù)目錄(5)ANDROIDMANIFESTXML文件項(xiàng)目的核心配置文件所有ACTIVITY和SERVICE,廣播接收器,以及權(quán)限都需要在里面配置24安卓存儲(chǔ)方式由于軟件需要進(jìn)行數(shù)據(jù)的處理,存儲(chǔ),發(fā)送數(shù)據(jù)必不可少,下面簡(jiǎn)單的介紹下安卓的幾種存儲(chǔ)方式第一種是安卓自帶的小型數(shù)據(jù)庫SQLITE,SQLITE雖然比MYSQL,ORACLE等數(shù)據(jù)庫輕量,但是實(shí)質(zhì)都需要編寫SQL語句,操作復(fù)雜,不建議使用。第二種就是使用FILE,也就是文件的形式進(jìn)行存儲(chǔ),在手機(jī)內(nèi)存或者SD卡新建目錄進(jìn)行存儲(chǔ),這種存儲(chǔ)形式更適合圖片緩存,日志記錄等內(nèi)容,也不建議使用。第三種就是使用SHAREDPREFERENCES,這是一種輕型的數(shù)據(jù)存儲(chǔ)方式,使用簡(jiǎn)便,易于存取。經(jīng)過仔細(xì)對(duì)比,感覺本軟件需要存儲(chǔ)的數(shù)據(jù)較少,可以不需要使用數(shù)據(jù)庫存儲(chǔ),因此使用安卓自帶的一種簡(jiǎn)便的存儲(chǔ)方式進(jìn)行數(shù)據(jù)存儲(chǔ)。下面簡(jiǎn)單的介紹下這種存儲(chǔ)方式SHAREDPREFERENCES它的本質(zhì)是基于XML文件存儲(chǔ)KEYVALUE鍵值對(duì)數(shù)據(jù),通常用來存儲(chǔ)一些簡(jiǎn)單的配置信息。其存儲(chǔ)位置在/DATA/DATA/SHARED_PREFS目錄下。具體實(shí)現(xiàn)代碼如下SHAREDPREFERENCESSPTHISGETSHAREDPREFERENCES“SAFEINFO“,THISMODE_PRIVATEEDITOREDSPEDITEDPUTSTRING“BANJING“,MBANJINGEDCOMMIT這段代碼是將本軟件設(shè)置好的圍欄半徑,監(jiān)控號(hào)碼和SIM卡識(shí)別號(hào)存儲(chǔ)到SHAREDPREFERENCES里,一共存儲(chǔ)了三條數(shù)據(jù),里面”BANJING”對(duì)應(yīng)了設(shè)置好的半徑,監(jiān)控號(hào)碼和SIM卡識(shí)別碼也是一樣,這段代碼執(zhí)行過后,即在/DATA/DATA/COMNINGLOCATIONSYS/SHARED_PREFS目錄下生成了一個(gè)SAFEINFOXML文件,一個(gè)應(yīng)用可以創(chuàng)建多個(gè)這樣的XML文件,然而,有存就有取,因?yàn)檫@是一個(gè)非常簡(jiǎn)便的存取工具,在取的時(shí)候代碼也非常簡(jiǎn)單,只需要簡(jiǎn)單的幾句就可以取出存儲(chǔ)好的數(shù)據(jù),具體代碼如下SHAREDPREFERENCESSP2THISGETSHAREDPREFERENCES“LOACATE“,THISMODE_PRIVATELATITUDEDOUBLEPARSEDOUBLESP2GETSTRING“LATITUDE“,“0”這是取出存儲(chǔ)的定位獲得的經(jīng)緯度信息,只需要找到對(duì)應(yīng)存儲(chǔ)的XML文件,對(duì)應(yīng)的KEY值,通過GETXXX方法,可以方便的獲得對(duì)應(yīng)KEY的VALUE值,如果KEY值錯(cuò)誤或者此KEY無對(duì)應(yīng)VALUE值,SHAREDPREFERENCES提供了一個(gè)賦予默認(rèn)值的機(jī)會(huì),以此保證程序的健壯性。225安卓的服務(wù)器連接由于本軟件需要發(fā)送數(shù)據(jù)到電腦端,所以就需要連接到服務(wù)器,ANDROID中網(wǎng)絡(luò)請(qǐng)求一般使用APACHEHTTPCLIENT或者采用HTTPURLCONNECT,但是直接使用這兩個(gè)類庫需要寫大量的代碼才能完成網(wǎng)絡(luò)POST和GET請(qǐng)求,所以經(jīng)過我在網(wǎng)上和書籍上進(jìn)行搜索,終于找到了更加便捷的方法來實(shí)現(xiàn)網(wǎng)絡(luò)的連接操作。ANDROIDASYNCHTTP是一個(gè)第三方服務(wù)器連接組件,它是基于HTTPCLIENT進(jìn)行二次開發(fā)的一個(gè)開源框架項(xiàng)目,最大的特點(diǎn)就是封裝好了我們連接服務(wù)器的代碼,并且所有的連接請(qǐng)求都獨(dú)立在主線程之外,我們只需要通過回調(diào)它提供的方法,就能得到請(qǐng)求的結(jié)果,再進(jìn)行結(jié)果的處理就可以了。由于操作十分簡(jiǎn)便,所以本軟件采用這種比較成熟的服務(wù)器連接開源框架來實(shí)現(xiàn)服務(wù)器的連接,下面簡(jiǎn)單的介紹下它的使用方法(1)首先到它的官網(wǎng)去下載最新的JAR包,然后添加到安卓應(yīng)用程序包目錄下的LIBS目錄下。(2)在代碼中實(shí)現(xiàn)網(wǎng)絡(luò)的連接操作ASYNCHTTPCLIENTCLIENTNEWASYNCHTTPCLIENTLISTLISTNEWARRAYLISTLISTADDNEWBASICNAMEVALUEPAIR“LATITUDE“,DOUBLETOSTRINGLATITUDELISTADDNEWBASICNAMEVALUEPAIR“ADDRESS“,ADDRESSURLENCODEDFORMENTITYENTITYNEWURLENCODEDFORMENTITYLIST,“UTF8“CLIENTPOSTTHIS,“192168201938080/SAFESYS/LOCATESERVLET“,ENTITY,NULL,NEWASYNCHTTPRESPONSEHANDLER通過以上幾行簡(jiǎn)單的代碼就可以把服務(wù)端需要的信息傳輸過去,在它的ONSUCCESS方法中可以得到發(fā)送成功返回的回調(diào)信息。相比使用安卓原生的HTTPCLIENT方便了許多,減少了大量的代碼。26定位功能由于定位功能有更好的第三方軟件可以提供使用,高德地圖集成了GPS,基站,WIFI等目前最主要的定位方式,所以本軟件采用了高德地圖來實(shí)現(xiàn)定位的功能。下面是定位功能的詳細(xì)實(shí)現(xiàn)流程圖5定位功能流程圖高德地圖是一款能夠提供免費(fèi)的地圖導(dǎo)航服務(wù)的產(chǎn)品,也是國(guó)內(nèi)比較流行的地圖軟件之一,由于它的免費(fèi)性,以及定位功能的穩(wěn)定、全面性,本軟件綜合考慮之后決定使用這款地圖服務(wù),但是要使用屬于第三方軟件的地圖服務(wù),必須遵守它的規(guī)則,下面是本軟件使用高德地圖進(jìn)行開發(fā)的前置操作(1)訪問HTTP/LBSAMAPCOM/進(jìn)入高德地圖官網(wǎng),注冊(cè)申請(qǐng)成為開發(fā)者,并申請(qǐng)應(yīng)用的KEY。(2)找到相關(guān)的下載,解壓得到定位包和地圖包拷貝JAR包到項(xiàng)目的LIBS目錄。(3)在核心配置文件里進(jìn)行配置并指定申請(qǐng)的用戶KEY,這個(gè)步驟比較重要,因?yàn)槊恳粋€(gè)應(yīng)用都對(duì)應(yīng)了一個(gè)KEY值,是使用高德地圖的一把鑰匙。(4)必須在核心配置文件里添加必須的權(quán)限,比如獲取手機(jī)信息,開啟網(wǎng)絡(luò)數(shù)據(jù)流量,GPS等,這樣就可以使用高德地圖的服務(wù)了。(5)最后就是通過代碼來得到我們需要的地理位置信息,首先是初始化高德地圖的定位,并設(shè)置監(jiān)聽器來得到返回的地理位置信息,還可以通過設(shè)置一些參數(shù)獲得不一樣的效果,比如設(shè)置定位模式為高精度模式(采用GPS模式)或者低功耗模式(采用網(wǎng)絡(luò)或者WIFI定位),設(shè)置定位的次數(shù)為一次或者無線次數(shù),還有定位的時(shí)間間隔等等,非常簡(jiǎn)單實(shí)用。本軟件每隔設(shè)置的時(shí)間間隔為每分鐘定位一次或者每分鐘定位2次。然后我們接收返回的位置信息,存儲(chǔ)起來,再做一個(gè)對(duì)比,如果位置不變的話,就不要發(fā)送到服務(wù)端存儲(chǔ),由于位置信息需要傳遞到服務(wù)器端,在電腦上顯示,所以就必須把定位后得到數(shù)據(jù)存儲(chǔ)并發(fā)送出去,所以就需要用到前面所說的服務(wù)器連接組件ASYCHTTPCLIENT。27電子圍欄功能地理圍欄是模擬出一個(gè)虛擬的柵欄,以一個(gè)圓形區(qū)域作為一個(gè)虛擬的圍欄,當(dāng)我們進(jìn)入或者離開這個(gè)區(qū)域的時(shí)候,手機(jī)都能夠接收到通知。高德地圖同時(shí)也提供了地理圍欄的功能,由于它也是屬于定位服務(wù)的,所以與定位相關(guān)的所有前置工作都要做,然后需要注冊(cè)一個(gè)廣播接收器來實(shí)現(xiàn)圍欄的功能,根據(jù)返回來的信息判斷是在圍欄半徑內(nèi)還是在圍欄半徑外,再做對(duì)應(yīng)的操作。這個(gè)功能主要是定位功能的一個(gè)擴(kuò)展,只需要在定位的基礎(chǔ)上添加一些地理圍欄的代碼,不過,由于我們不知道到底什么時(shí)候用戶會(huì)走出這個(gè)圈,所以我們需要使用到一個(gè)將來的意圖(INTENT),在未知的時(shí)間里如果走出了這個(gè)圍欄就會(huì)觸發(fā)這個(gè)意圖,而我們只需要在觸發(fā)意圖的時(shí)候發(fā)送一個(gè)特定的廣播,就可以通知到我們的用戶出了圍欄,然后我們?cè)僮鰧?duì)應(yīng)的操作就可以了。28換卡發(fā)送短信功能由于在手機(jī)的SIM卡中并沒有保存用戶的手機(jī)號(hào)碼,所以只能通過SIM卡唯一的識(shí)別串號(hào)(區(qū)分每一張SIM是通過IMSI碼,在運(yùn)營(yíng)商的數(shù)據(jù)庫中存在手機(jī)號(hào)碼和IMSI碼的映射,所以手機(jī)是通過發(fā)送IMSI碼到運(yùn)營(yíng)商的一端,獲得自己的手機(jī)號(hào)碼)來判斷是否切換了SIM卡,并且在開機(jī)和開啟APP的時(shí)候雙重判斷,就能夠判斷出用戶的手機(jī)卡是否切換。主要流程如下圖6換卡發(fā)送短信功能流程圖(1)首先是在安裝APP的時(shí)候,默默在后臺(tái)存儲(chǔ)了手機(jī)的相關(guān)信息,在主界面也能查看手機(jī)的各種狀態(tài)信息。(2)在手機(jī)開機(jī)的時(shí)候和每次開啟APP的時(shí)候都再次取出IMIS碼做對(duì)比,如果匹配結(jié)果不一致,則判定為切換了SIM卡,反之沒有切換。具體代碼實(shí)現(xiàn)獲取手機(jī)IMIS碼TELEPHONYMANAGERTMTELEPHONYMANAGERTHISGETSYSTEMSERVICECONTEXTTELEPHONY_SERVICESTRINGSUBSCRIBERIDTMGETSUBSCRIBERID安卓系統(tǒng)在開機(jī)完畢后會(huì)發(fā)出一個(gè)開機(jī)完成的廣播,我們只需要在程序代碼中監(jiān)聽這個(gè)廣播,首先是需要注冊(cè)一個(gè)廣播接收器進(jìn)行監(jiān)聽,然后在開機(jī)完畢后執(zhí)行相對(duì)應(yīng)的匹配操作,就能夠?qū)崿F(xiàn)這個(gè)功能,不過由于開機(jī)手機(jī)會(huì)比較卡頓,經(jīng)常不會(huì)執(zhí)行或者是卡的時(shí)候手機(jī)為了保證系統(tǒng)不受影響會(huì)殺死這些代碼執(zhí)行的進(jìn)程,具體實(shí)現(xiàn)如下先寫一個(gè)類繼承廣播接收器BOOTBROADCASTRECEIVER用來接收開機(jī)的時(shí)候安卓系統(tǒng)發(fā)送出來的廣播,然后在它的ONRECEIVE方法里執(zhí)行相應(yīng)的匹配操作,如果匹配成功則不做操作,如果檢測(cè)到開機(jī)獲取的手機(jī)卡的識(shí)別碼與我們存儲(chǔ)的不一致,則執(zhí)行發(fā)送短信操作。最后,需要注意的是,廣播接收器需要在核心配置文件里進(jìn)行配置,具體代碼如下29收到短信回復(fù)我們的手機(jī)收到一條短信,安卓系統(tǒng)也會(huì)發(fā)出一個(gè)廣播,并且把短信放在一個(gè)BUNDLE(INTENTEXTRAS)中,BUNDLE可以理解為一個(gè)鍵值對(duì)的形式,短信采用“PDUS“作為鍵,PDUS應(yīng)該是PROTOCOLDESCRIPTIONUNITS的簡(jiǎn)寫,也就是一組短信。7ANDROID不是一接收到短信就立刻發(fā)出廣播的,他會(huì)有一定的延遲,所以就有可能會(huì)有多條短信,所以才會(huì)用數(shù)組來存放。所以這個(gè)功能需要監(jiān)聽手機(jī)來短信的廣播或者監(jiān)聽短信數(shù)據(jù)庫的變化,為了確定能收到監(jiān)聽到短信,本軟件對(duì)這兩個(gè)點(diǎn)都做了監(jiān)聽,因?yàn)閺V播的權(quán)限與優(yōu)先級(jí)別會(huì)被打斷,但是數(shù)據(jù)庫的變化不會(huì),因此,這樣雙重監(jiān)聽才能確保能收到短信的時(shí)候代碼會(huì)被執(zhí)行,具體實(shí)現(xiàn)流程如下圖7收到短信回復(fù)流程圖首先是我們需要注冊(cè)一個(gè)廣播接收器監(jiān)聽短信廣播,一個(gè)廣播監(jiān)聽短信數(shù)據(jù)庫的變化,在它們的ONRECEIVE方法中實(shí)現(xiàn)短信判斷邏輯,當(dāng)收到短信的時(shí)候,我們要獲得短信的內(nèi)容,短信的發(fā)送者,然后根據(jù)發(fā)送者和內(nèi)容做一個(gè)判斷,再?zèng)Q定是否需要回傳定位短信。短信到來的時(shí)候,系統(tǒng)會(huì)將短信的內(nèi)容封裝成PDU的格式,然后放到INTENT里面。所以要獲得短信的內(nèi)容,就通過INTENT,將PUDS拿出來就可以了,它返回的是OBJECT數(shù)組,下面是獲取短信內(nèi)容的實(shí)現(xiàn)OBJECTMESSAGESOBJECTINTENTGETSERIALIZABLEEXTRA“PDUS“BYTEPDUOBJSNEWBYTEMESSAGESLENGTHFORINTI0I這樣的符號(hào),這就是HTML的標(biāo)簽。42網(wǎng)頁端功能實(shí)現(xiàn)網(wǎng)頁主要由HTML編寫,其中使用到了目前比較流行的一些技術(shù),比如AJAX,和JAVASCRIPT。AJAX也不是一種新的編程語言,只是一種技術(shù)。主要用于創(chuàng)建更好更快以及交互性更強(qiáng)的WEB應(yīng)用程序,AJAX在瀏覽器與WEB服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請(qǐng)求),這樣就可使網(wǎng)頁從服務(wù)器請(qǐng)求少量的信息,而不是整個(gè)頁面,用于局部刷新效果非常好。JAVASCRIPT是一種屬解釋性的腳本語言,被廣泛用于WEB應(yīng)用開發(fā),常用來為網(wǎng)頁添加各式各樣的動(dòng)態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。網(wǎng)頁端主要是由HTML標(biāo)簽編寫形成,調(diào)用了百度地圖的接口,我們只需要發(fā)送一個(gè)AJAX的POST請(qǐng)求到對(duì)應(yīng)的SERVLET就請(qǐng)求到服務(wù)器返回的數(shù)據(jù),然后在它的SUCCESS方法中把獲取到的位置信息加載到百度地圖中去,地圖上就會(huì)顯示出最新的定位信息,當(dāng)然,如果沒有接收到數(shù)據(jù)的時(shí)候,也做了相應(yīng)的處理,會(huì)彈窗告知沒有定位信息,打開手機(jī)定位。最后在電腦上任意一個(gè)瀏覽器輸入網(wǎng)絡(luò)上的HTML鏈接就可以得到地圖顯示出來的定位信息,比如本軟件通過訪問19216811048080/LOCATESERVER/DITUHTML這個(gè)鏈接就可以訪問到HTML頁面,網(wǎng)頁成功訪問的時(shí)候會(huì)把SERVLET返回的JSON數(shù)據(jù)解析,然后應(yīng)用到地圖頁面。最終我們就能夠看到地圖上顯示了小于10條的定位信息,且最新的一條會(huì)以卡通人物和窗口特別顯示出來。5調(diào)試在調(diào)試初期,遇到了很多問題,比如獲取不了手機(jī)SIM卡的號(hào)碼,就不能判斷是否切換了帳號(hào);還有監(jiān)聽收到短信的時(shí)候,廣播接收器不能攔截到信息;還有監(jiān)聽開機(jī)廣播,開啟定位服務(wù)和換卡監(jiān)控服務(wù)無法實(shí)現(xiàn)等等。后來,經(jīng)過上網(wǎng)查詢資料,終于一點(diǎn)一點(diǎn)解決了問題,進(jìn)入到了調(diào)試階段51程序調(diào)試程序開發(fā)中會(huì)遇到各種各樣的問題,如語法的錯(cuò)誤,邏輯的錯(cuò)誤。開發(fā)完一個(gè)功能,都需要及時(shí)測(cè)試,待功能測(cè)試通過后,才能進(jìn)行下一個(gè)功能的開發(fā),這樣可以保證程序的質(zhì)量。在程序開發(fā)中,使用了打印調(diào)試信息,彈窗提示,DEBUG調(diào)試等方法。52測(cè)試的主要內(nèi)容為了保證測(cè)試的質(zhì)量,測(cè)試過程包括代碼審查、單元測(cè)試以及系統(tǒng)測(cè)試。(1)代碼審查代碼審查為了對(duì)代碼中冗余的部分,代碼中邏輯不合理的部分加以修改,保證代碼的可讀性,可維護(hù)性。(2)單元測(cè)試單元測(cè)試就是模塊測(cè)試,是編寫的一小段代碼實(shí)現(xiàn)某一個(gè)具體的功能,用來檢查功能是否符合需求。3系統(tǒng)測(cè)試系統(tǒng)測(cè)試是將所有的單元模塊整合到一起,作為一個(gè)整體的系統(tǒng)進(jìn)行測(cè)試,驗(yàn)證系統(tǒng)是不是滿足了需求,還有沒有能更加完善的辦法等。下面是本軟件進(jìn)行調(diào)試的一些截圖圖9設(shè)置安全信息頁面調(diào)試這個(gè)是在開啟本軟件的時(shí)候需要設(shè)置的一些安全信息,是實(shí)現(xiàn)后續(xù)功能的前提,對(duì)于這些數(shù)據(jù)的存儲(chǔ),遇到過很多的問題,比如存儲(chǔ)和取出來的先后邏輯出現(xiàn)錯(cuò)誤,重復(fù)存儲(chǔ),重復(fù)取出等問題,做過很多的嘗試,最終還是統(tǒng)一做一個(gè)安卓本地的存儲(chǔ),這樣利于存取,完美的解決了這個(gè)問題。圖10手機(jī)中查看我的位置頁面調(diào)試這是在調(diào)試在手機(jī)上查看我的位置調(diào)試時(shí)候的截圖,剛開始這個(gè)功能只能夠在文字頁面中查看到定位得到的消息,不夠突出,也不能查看周邊的環(huán)境,最終為了更好的視圖效果,我加上了地圖上查看位置這個(gè)功能。圖11調(diào)試檢測(cè)手機(jī)是否換卡功能這個(gè)功能相對(duì)花的時(shí)間還算是比較多的,因?yàn)樵谖覀兊氖鞘謾C(jī)中并沒有存儲(chǔ)我們的手機(jī)號(hào)碼,為了實(shí)現(xiàn)這個(gè)功能,我找了不少的資料,最終通過手機(jī)卡中唯一的一個(gè)識(shí)別碼解決了這個(gè)問題。地理圍欄這個(gè)功能算是最難測(cè)試的一個(gè)功能了,由于距離不好控制,當(dāng)然定位也會(huì)有一定的差距,最后還是通過安卓的模擬器設(shè)置的一個(gè)虛擬定位成功調(diào)試出來,只需要在設(shè)定好圍欄的半徑之后,模擬已經(jīng)到另一個(gè)地址,就可以接收到圍欄信息,下圖模擬的位置首先是廣東省廣州市越秀區(qū)王圣堂后街,接下來我模擬到距離它絕對(duì)超過圍欄半徑的廣州市白云區(qū)天幕步行街,結(jié)果能正確打印出離開圍欄區(qū)域信息,手機(jī)界面也會(huì)彈出消息提示。圖12地理圍欄測(cè)試結(jié)果最后一個(gè)功能是在電腦上查看手機(jī)的定位信息,這個(gè)功能主要是訪問之前寫好的SERVLET獲取到數(shù)據(jù)庫存儲(chǔ)的定位信息(默認(rèn)顯示10條,不足10條按原來?xiàng)l數(shù)計(jì)算),然后在瀏覽器輸入HTML頁面的鏈接,就能夠在地圖中顯示出手機(jī)傳送過來的信息,在頁面中,最新的一條信息將會(huì)以一個(gè)窗口顯示出來,且定位中心點(diǎn)由一個(gè)卡通人物作為標(biāo)志,非常容易識(shí)別。圖13電腦查看手機(jī)位置信息界面經(jīng)測(cè)試該軟件系統(tǒng)的功能皆正常。軟件的質(zhì)量可以達(dá)到保證,軟件系統(tǒng)在異常情況下能正常運(yùn)行,不會(huì)出現(xiàn)異常狀況而直接退出。6總結(jié)通過本次畢業(yè)設(shè)計(jì),使我熟悉了軟件開發(fā)的流程,并且學(xué)到了很多軟件開發(fā)的知識(shí),這些知識(shí),這些實(shí)戰(zhàn)經(jīng)驗(yàn)都是在課堂上學(xué)不到的東西,在此同時(shí),我也有幾點(diǎn)深刻的體會(huì)(1)編程中定義窗體及變量的名稱時(shí),一定要規(guī)范,必要時(shí)加上注解,不要想當(dāng)然的定義某個(gè)變量,常量等。標(biāo)準(zhǔn)的定義方式,有助于自己以后維護(hù),也便于其他編程人員更容易的看懂程序代碼,以便以后進(jìn)行維護(hù)。(2)編程的方法固然重要,程序的使用界面也需要注意美觀,布局要合理,主題要突出,界面要友好,要讓使用過計(jì)算機(jī)的用戶在首次接觸到該軟件時(shí),感到一目了然,只要簡(jiǎn)單翻閱一下軟件使用說明書就能了解該軟件的大致功能。(3)在程序編好后,對(duì)程序的調(diào)試是極其重要的一步,調(diào)試程序的意義在于,可以逐步完善,改正程序中的錯(cuò)誤,使程序盡量達(dá)到盡善盡美。在程序調(diào)試的過程中,盡量不要以編程者編程時(shí)的思想去調(diào)試,要以一個(gè)普通使用者的思維去調(diào)試。以上是我在編寫程序過程中的體會(huì),在這次畢業(yè)設(shè)計(jì)的過程中我不僅了解了軟件的編寫過程,更體會(huì)到軟件工程的重要性。一個(gè)軟件成敗的關(guān)鍵在于需求分析和總體設(shè)計(jì)。從軟件工程的角度有以下幾點(diǎn)體會(huì)(1)需求分析工作是軟件開發(fā)過程中重要的一步,也是決定性的一步,是要把用戶“做什么”的要求轉(zhuǎn)換成一個(gè)軟件的邏輯模型。在實(shí)際工作中,由于用戶對(duì)軟件開發(fā)的不了解,往往對(duì)于軟件所要達(dá)到的功能不能完全提出來,軟件開發(fā)人員要完全了解用戶的需求,要想到用戶的前面,把用戶沒想到的需求也要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒語言理解能力評(píng)估量表試題及答案
- 醫(yī)療器械經(jīng)營(yíng)人員繼續(xù)教育考試試題沖刺卷
- 烹飪師技能水平測(cè)試規(guī)范試題沖刺卷
- 道路交通信號(hào)燈安裝與維護(hù)規(guī)范(標(biāo)準(zhǔn)版)
- 親水平臺(tái)專項(xiàng)施工方案
- 高一物理新能源技術(shù)測(cè)試試題及答案
- 航空業(yè)客艙服務(wù)標(biāo)準(zhǔn)手冊(cè)
- 建筑設(shè)計(jì)規(guī)范與施工指南
- 企業(yè)環(huán)保設(shè)施運(yùn)行管理指南(標(biāo)準(zhǔn)版)
- 醫(yī)療護(hù)理服務(wù)質(zhì)量規(guī)范手冊(cè)
- 2025-2030中國(guó)寵物醫(yī)藥市場(chǎng)經(jīng)營(yíng)形勢(shì)分析及投資規(guī)劃趨勢(shì)研究研究報(bào)告
- 2026北森測(cè)評(píng)試題及答案
- 員工股權(quán)激勵(lì)方案設(shè)計(jì)模板
- 2026西藏自治區(qū)教育考試院招聘非編工作人員11人備考考試題庫及答案解析
- ??低曅@招聘在線測(cè)評(píng)題庫
- 急性上消化道大出血的急診綠色通道管理
- 2025廈門大學(xué)鷺江創(chuàng)新實(shí)驗(yàn)室未來樞紐海洋科技產(chǎn)業(yè)合作經(jīng)理招聘1人備考考試題庫及答案解析
- 泵站運(yùn)行維護(hù)方案
- 施工單位春節(jié)安全培訓(xùn)課件
- 物業(yè)石材養(yǎng)護(hù)合同
- 七年級(jí)下冊(cè)期中考試詩詞填空過關(guān)自測(cè)
評(píng)論
0/150
提交評(píng)論