基于android系統(tǒng)的手機(jī)防盜畢業(yè)論文_第1頁
已閱讀1頁,還剩101頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  近年來,智能手機(jī)的功能日趨強(qiáng)大,移動(dòng)終端應(yīng)用程序?qū)映霾桓F。由于現(xiàn)在人們的工作繁忙,手機(jī)的丟失似乎也成為常有的事。與之帶來最讓人煩心的是私人數(shù)據(jù)的丟失及帶來的不安全隱患?;谝陨显?,本文設(shè)計(jì)了一款手機(jī)防盜追蹤軟件。本軟件利用 Android系統(tǒng)的廣播機(jī)制,當(dāng)手機(jī)用戶開啟防盜追蹤功能后,本程序?qū)⒑笈_(tái)監(jiān)聽手機(jī)開機(jī)啟動(dòng)、信號(hào)狀態(tài)、短信

2、收發(fā)以及位置的改變,通過監(jiān)聽手機(jī)用戶 SIM 卡的 IMSI碼的改變來判斷手機(jī)安全狀態(tài),監(jiān)聽并截獲安全短信內(nèi)容,實(shí)現(xiàn)非法用戶的手機(jī)號(hào)碼向合法用戶預(yù)先設(shè)置的安全號(hào)碼發(fā)送特殊信息的功能,告知用戶當(dāng)前手機(jī)狀態(tài)和位置信息,并可通過安全短信控制被盜手機(jī)鎖屏、銷毀隱私數(shù)據(jù)、發(fā)報(bào)警音等功能。最后將設(shè)計(jì)完成的軟件進(jìn)行測(cè)試,其所有功能都完美實(shí)現(xiàn),真正起到了手機(jī)防盜追蹤的作用。</p><p>  關(guān)鍵詞:Android系統(tǒng) 手機(jī)

3、防盜 廣播機(jī)制 監(jiān)聽器</p><p><b>  ABSTRACT</b></p><p>  In recent years, the intelligent mobile phone function is powerful, the mobile terminal application emerge in an endless stream. Becau

4、se now people's busy work, the lost mobile phone also seems to be a common thing. And bring the most disturbing is a private data loss and insecurity hidden trouble. Based on the above reasons, this paper introduces

5、the design of a mobile phone anti-theft tracking software. This software uses Android system broadcast mechanism, when the mobile phone users to open </p><p>  Keywords: Android system DroidRing Broadcast

6、ing mechanism Listener</p><p><b>  目錄</b></p><p><b>  1緒論1</b></p><p>  1.1應(yīng)用開發(fā)研究背景與意義1</p><p>  1.2國內(nèi)外研究現(xiàn)狀2</p><p>  1.2.1

7、國內(nèi)研究狀況2</p><p>  1.2.2國外研究狀況2</p><p>  1.3開發(fā)研究內(nèi)容3</p><p>  2手機(jī)防盜應(yīng)用開發(fā)的基礎(chǔ)4</p><p>  2.1Java基礎(chǔ)4</p><p>  2.2Android基礎(chǔ)4</p><p>  3手機(jī)防盜

8、應(yīng)用方案的設(shè)計(jì)5</p><p>  3.1UI設(shè)計(jì)5</p><p>  3.1.1UI窗口層6</p><p>  3.1.2UI主層8</p><p>  3.1.3UI功能體驗(yàn)層8</p><p>  3.1.4UI指令查看層9</p><p>  3.1.5UI

9、信息設(shè)置層10</p><p>  3.2Function設(shè)計(jì)11</p><p>  3.2.1應(yīng)用初始化11</p><p>  3.2.2功能選擇11</p><p>  3.2.3功能體驗(yàn)12</p><p>  3.2.4功能查看12</p><p>  3.2.

10、5功能設(shè)置12</p><p>  3.3Service設(shè)計(jì)12</p><p>  3.3.1數(shù)據(jù)庫存儲(chǔ)服務(wù)12</p><p>  3.3.2監(jiān)聽按鈕事件服務(wù)13</p><p>  3.3.3開機(jī)啟動(dòng)和短信廣播服務(wù)13</p><p>  3.3.4GPS服務(wù)14</p>&

11、lt;p>  3.3.5私人數(shù)據(jù)的管理14</p><p>  4手機(jī)防盜應(yīng)用方案的實(shí)施15</p><p>  4.1UI的實(shí)現(xiàn)15</p><p>  4.1.1Activity15</p><p>  4.1.2ListActivity20</p><p>  4.1.3Prefere

12、nceActivity24</p><p>  4.1.4Dialog26</p><p>  4.2由Sever支持的Function實(shí)現(xiàn)27</p><p>  4.2.1廣播機(jī)制服務(wù)27</p><p>  4.2.2換卡短信通知30</p><p>  4.2.3定位手機(jī)31</p&

13、gt;<p>  4.2.4數(shù)據(jù)銷毀32</p><p>  4.2.5鎖定手機(jī)34</p><p>  4.2.6發(fā)報(bào)警音35</p><p>  4.2.7數(shù)據(jù)庫存儲(chǔ)應(yīng)用36</p><p>  5手機(jī)防盜應(yīng)用測(cè)試37</p><p>  5.1防盜應(yīng)用初始化37</p&

14、gt;<p>  5.2手機(jī)定位功能測(cè)試37</p><p>  5.3換卡短信通知功能測(cè)試38</p><p>  5.4鎖屏功能測(cè)試39</p><p>  5.5銷毀數(shù)據(jù)40</p><p>  5.6發(fā)報(bào)警音40</p><p>  6手機(jī)防盜應(yīng)用說明41</p>

15、;<p><b>  結(jié)論42</b></p><p><b>  致謝43</b></p><p><b>  參考文獻(xiàn)44</b></p><p><b>  附錄一45</b></p><p><b>  附錄二46

16、</b></p><p><b>  附錄三53</b></p><p><b>  緒論</b></p><p>  應(yīng)用開發(fā)研究背景與意義</p><p>  隨著 3G 技術(shù)的不斷發(fā)展,手機(jī)移動(dòng)應(yīng)用開發(fā)成為目前熱門的技術(shù)之一。種類繁多的手機(jī)應(yīng)用以及先進(jìn)的硬件,使得手機(jī)已經(jīng)不完全是

17、用來通話的工具了,它巧妙的融合了PDA(Personal Digital Assistant,掌上電腦)、數(shù)碼相機(jī)以及MP3等諸多功能,一機(jī)多能且不斷向?qū)I(yè)化邁進(jìn)是現(xiàn)在手機(jī)的發(fā)展方向[1]。手機(jī)功能的增多以及不斷完善,自然價(jià)格也高低不一,好的手機(jī)可以賣到筆記本的價(jià)格。</p><p>  關(guān)于手機(jī)我們能想到很多人們擔(dān)心的話題。而最為愁人的就是現(xiàn)在的手機(jī)大都兼容各種電話卡,一旦丟失,就會(huì)機(jī)卡兩空。在我們忙碌的工作生

18、活中,似乎手機(jī)丟失已經(jīng)成為了一種自然的事情。其實(shí)不論你的手機(jī)值不值錢,丟東西的事情本身就會(huì)讓人頭疼。那么該怎樣制服盜機(jī)者,在我們提高自身防范意識(shí)的同時(shí),適當(dāng)?shù)臑槭謾C(jī)增加些防盜功能也是應(yīng)該的。</p><p>  在眾多手機(jī)操作系統(tǒng)中,Android手機(jī)操作系統(tǒng)由于他的完全開放性使得其應(yīng)用人群獨(dú)占鰲頭。</p><p>  圖1.1 Android系統(tǒng)構(gòu)架</p><p&

19、gt;  Android(智能機(jī)器人)是 Google 開發(fā)的基于 Linux 平臺(tái)的開源手機(jī)操作系統(tǒng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,其系統(tǒng)構(gòu)架如圖1.1所示,被譽(yù)為第一個(gè)完整、開發(fā)而免費(fèi)的移動(dòng)平臺(tái)。Google 提供在線文檔、工具、論壇和軟件開發(fā)工具包等資源,以便開發(fā)者在 Android 平臺(tái)上開發(fā)應(yīng)用程序。并且眾多手機(jī)制造商,如三星、摩托羅拉、HTC、LG和小米等,還有許多半導(dǎo)體公司,如英特爾、德州儀器、NVID

20、IA 和高通等,參與 Android 手機(jī)設(shè)計(jì)。由此可見,Android發(fā)展前景不容小覷,已成為目前主流的手機(jī)操作系統(tǒng)之一。Android 手機(jī)設(shè)備運(yùn)行在 Linux 操作系統(tǒng)下,這使得其上運(yùn)行的 Android 應(yīng)用程序具有很強(qiáng)的安全性。每一個(gè) Android 應(yīng)用程序均運(yùn)行在不同的進(jìn)程中,每個(gè)進(jìn)程都對(duì)應(yīng)一個(gè) Dalvik 虛擬機(jī)的實(shí)例。基于 Java 虛擬機(jī),Dalvik 為移動(dòng)設(shè)備進(jìn)行了優(yōu)化設(shè)計(jì)。Dalvik 虛擬機(jī)具有較小的內(nèi)存

21、占用,而且多個(gè) Dalvik 虛擬機(jī)的實(shí)例在手機(jī)設(shè)備中可以并發(fā)運(yùn)行。Android 應(yīng)用程序?yàn)橥泄艽a,所以,由應(yīng)用程序而導(dǎo)致系統(tǒng)</p><p>  綜觀Android手機(jī)系統(tǒng),我們不難發(fā)現(xiàn),應(yīng)用本系統(tǒng)開發(fā)手機(jī)的生產(chǎn)廠商多,用戶基數(shù)大,安全性高,并受到眾多大牌公司支持,基于以上優(yōu)越性,在Android系統(tǒng)上開發(fā)本手機(jī)防盜應(yīng)用具有重要的現(xiàn)實(shí)意義。</p><p><b>  國內(nèi)

22、外研究現(xiàn)狀</b></p><p><b>  國內(nèi)研究狀況</b></p><p>  毋庸置疑手機(jī)防盜應(yīng)用肯定歸屬于手機(jī)安全類軟件,對(duì)于安全軟件的開發(fā)與研究又是殺毒軟件公司首要考慮的功能之一,所以國內(nèi)的很多殺毒軟件公司在自己的產(chǎn)品中都涉及了防盜功能。例如金山手機(jī)衛(wèi)士、360手機(jī)衛(wèi)士、QQ手機(jī)管家等保護(hù)手機(jī)系統(tǒng)安全類軟件中具有防盜功能。</p>

23、;<p><b>  圖 1.1手機(jī)防盜</b></p><p><b>  國外研究狀況</b></p><p>  英國一家手機(jī)服務(wù)公司宣布推出一整套手機(jī)防盜軟件的服務(wù),使用該服務(wù)的用戶在手機(jī)被盜后不僅可及時(shí)轉(zhuǎn)移手機(jī)信息,手機(jī)還能發(fā)出刺耳鳴聲,讓竊賊根本無法使用所盜手機(jī)。當(dāng)用戶在手機(jī)中安裝這款軟件后,每月只需支付10英鎊(約合1

24、8美元)即可享受防盜服務(wù)。一旦手機(jī)被盜,用戶可立即致電公司。公司隨即向被盜手機(jī)發(fā)送指令,將里面存儲(chǔ)的信息全部轉(zhuǎn)移至安全服務(wù)器,隨后鎖定手機(jī)功能并使手機(jī)發(fā)出刺耳的鳴聲。 </p><p>  該公司介紹說,防盜程序啟動(dòng)后,竊賊即便更換SIM卡也無法解除鎖定。此外,只要不取出電池,鳴聲就不會(huì)停止。用戶購買新手機(jī)后,還可申請(qǐng)將原來手機(jī)中的全部信息轉(zhuǎn)移至新手機(jī)內(nèi)。據(jù)倫敦市警察局統(tǒng)計(jì),該市每月約有1萬部手機(jī)被盜。警方希望這

25、一手機(jī)防盜軟件能改善這一局面[3]。</p><p>  美國的蘋果公司,在其官網(wǎng)上向所有用戶提供了一項(xiàng)云端技術(shù)服務(wù),只要蘋果手機(jī)或者蘋果的其他移動(dòng)設(shè)備,都可以享受到手機(jī)衛(wèi)星定位功能。具體做法是:首先,在拿到蘋果后,你要先申請(qǐng)屬于你的Apple ID,登錄蘋果商店或者在Mobile Me上注冊(cè),這個(gè)應(yīng)用就可以實(shí)時(shí)定位你的iPhone的位置。</p><p>  圖 1.

26、2 蘋果手機(jī)防盜</p><p><b>  開發(fā)研究內(nèi)容</b></p><p>  從上面的應(yīng)用我們可以看出,無論是國內(nèi)還是國外,只要是致力于防盜功能的軟件,其最核心功能都用到了GPS、鎖屏、媒體播放等。因此,綜合以上各軟件優(yōu)點(diǎn),新型的手機(jī)防盜應(yīng)用軟件應(yīng)具有GPS定位、被盜時(shí)鎖屏、通過短信控制以最大音量發(fā)報(bào)警音、遠(yuǎn)程銷毀隱私數(shù)據(jù)以及偷拍盜竊者長相等功能。同時(shí),防盜

27、應(yīng)用軟件也應(yīng)充分利用操作系統(tǒng)固有的資源。</p><p>  因此,本課題的任務(wù)是設(shè)計(jì)一款基于 Android 平臺(tái)開發(fā)的一款手機(jī)防盜軟件。通過Android系統(tǒng)中的廣播機(jī)制后臺(tái)監(jiān)聽手機(jī)的各種狀態(tài),根據(jù)狀態(tài)的改變來判斷手機(jī)是否安全。一旦手機(jī)丟失,我們便可通過向失竊手機(jī)發(fā)送指令短信的方式,應(yīng)用Android系統(tǒng)的GPS(Global Positioning System,全球定位系統(tǒng))、SMS(Short Mess

28、aging Service,短信服務(wù))、Activity(用戶界面)、BroadcastReceiver(廣播機(jī)制)、Intent(請(qǐng)求)、Service(服務(wù))以及Content providers(訪問數(shù)據(jù)庫)等技術(shù)控制手機(jī)并獲得手機(jī)具體位置,旨在為丟失手機(jī)用戶找回手機(jī)提供了重要依據(jù)。</p><p>  手機(jī)防盜應(yīng)用開發(fā)的基礎(chǔ)</p><p><b>  Java基礎(chǔ)<

29、;/b></p><p>  Java由Sun(Stanford University Network)公司于1995年5月為增強(qiáng)互聯(lián)網(wǎng)的交互性而設(shè)計(jì)。Java語言最早的名字為C++--,從名字上我們可以看出,Java語言的原型為C語言,后經(jīng)大量優(yōu)化在C基礎(chǔ)上增增減減,最終設(shè)計(jì)出這款現(xiàn)在企業(yè)級(jí)開發(fā)的第一語言[4]。Java語言具有極強(qiáng)的跨平臺(tái)能力,多語言的支持,占據(jù)著互聯(lián)網(wǎng)開發(fā)語言的首位。</p>

30、;<p>  基于Android系統(tǒng)的手機(jī)應(yīng)用全部應(yīng)用Java語言編寫完成。所以,想在Android系統(tǒng)上做出一個(gè)好的應(yīng)用來不僅要會(huì)Java語言,而且還要運(yùn)用熟練。對(duì)此,我通過觀看Mars老師的Java4Android視頻和對(duì)Java相關(guān)書籍的精讀與練習(xí),強(qiáng)化了自己對(duì)Java語言的掌握,使我對(duì)Java的運(yùn)用能力有了很大的提高,并為編寫與設(shè)計(jì)Android應(yīng)用奠定了良好地基礎(chǔ)。</p><p><

31、;b>  Android基礎(chǔ)</b></p><p>  知己知彼者百戰(zhàn)百勝。想在Android系統(tǒng)上做開發(fā),就一定要了解Android系統(tǒng),知道他的由來和內(nèi)部構(gòu)造。</p><p>  Android操作系統(tǒng)最初主要支持手機(jī),2005年Google收購了剛剛成立22個(gè)月的Android公司,也正是有了在Google這樣巨頭公司下發(fā)展的機(jī)會(huì)才使得Android系統(tǒng)迅猛發(fā)展

32、。2007年11月5日,以Google為首的34家公司宣布成立OHA(Open Handset Alliance,開放手機(jī)聯(lián)盟)。2008年9月22日,美國運(yùn)營商T-Mobile USA在紐約正式發(fā)布第一款Google手機(jī)--T-Mobile G1。Android平臺(tái)的主題思想和Google是一樣的,就是隨時(shí)隨地為每個(gè)人提供信息[5]。</p><p>  最早的Android版本為Android 1.0(發(fā)條機(jī)

33、器人),自Android系統(tǒng)發(fā)布第一版本到現(xiàn)在已經(jīng)更新多次。Android 1.1 Beta(阿童木) 2008年9月發(fā)布的Android第一版,后來由于涉及到版權(quán)問題,Goolge將其命名規(guī)則變更為用甜點(diǎn)作為它們系統(tǒng)版本的代號(hào)的命名方法。其各版本logo如圖2.1所示。</p><p>  Android 1.5 Cupcake(紙杯蛋糕)</p><p>  Android 1.6 D

34、onut(甜甜圈)</p><p>  Android 2.0/2.0.1/2.1 Eclair(松餅)</p><p>  Android 2.2/2.2.1 Froyo(凍酸奶)</p><p>  Android 2.3 Gingerbread(姜餅)</p><p>  Android 3.0 Honeycomb(蜂巢)</p&

35、gt;<p>  Android 3.1 Honeycomb(蜂巢)</p><p>  Android 3.2 Honeycomb(蜂巢)</p><p>  Android 4.0 Ice Cream Sandwich(冰激凌三明治)</p><p>  Android 5.0 Jelly Bean(果凍豆)</p><p>

36、;  手機(jī)防盜應(yīng)用方案的設(shè)計(jì)</p><p>  在電子領(lǐng)域,要想擁有很好的市場(chǎng)前景,就必須應(yīng)用最先進(jìn)的設(shè)計(jì)技術(shù)、最成熟的設(shè)計(jì)理念以及最合理的設(shè)計(jì)方法才能使得產(chǎn)品得以發(fā)展。于是我選擇了目前市場(chǎng)應(yīng)用最為廣泛的金山手機(jī)衛(wèi)士、360手機(jī)衛(wèi)士和QQ手機(jī)管家其中的手機(jī)防盜部分作為參考。學(xué)習(xí)并對(duì)比這3家在此功能上的不同。分別在UI(User Interface,用戶界面)、Function(功能)和Service上做了比較。

37、</p><p>  表格 1 手機(jī)防盜UI、Function和Service對(duì)比</p><p>  從表格1中我們可以很清楚的看到,在UI方面360更為注重,以多圖少字的方式展現(xiàn)功能,使用戶更加喜歡,也方便了用戶對(duì)功能的理解。不過從Function上來看,金山手機(jī)防盜的設(shè)計(jì)就要優(yōu)于另外兩家,在所有功能的基礎(chǔ)上還加進(jìn)了一項(xiàng)防盜拍照,這是僅有4項(xiàng)功能的QQ所沒能想到的安全設(shè)計(jì)。</p

38、><p>  綜合以上軟件優(yōu)點(diǎn)便是此軟件將要實(shí)現(xiàn)并達(dá)到的目標(biāo)。因此我將結(jié)合360的UI、金山的Function和Service做出一款即看上去漂亮而且功能也強(qiáng)大的手機(jī)防盜軟件。</p><p><b>  UI設(shè)計(jì)</b></p><p>  UI設(shè)計(jì)是指對(duì)軟件的人機(jī)交互、操作邏輯、界面美觀的整體設(shè)計(jì)。好的UI設(shè)計(jì)不僅是讓軟件變得有個(gè)性有品味,還要

39、讓軟件的操作變得舒適、簡(jiǎn)單、自由,充分體現(xiàn)軟件的定位和特點(diǎn)。如圖3.1就是一副很美觀的UI。</p><p><b>  圖 3.1 UI</b></p><p>  軟件設(shè)計(jì)可分為兩個(gè)部分:編碼設(shè)計(jì)與UI設(shè)計(jì)。編碼設(shè)計(jì)大家都很熟悉,但是UI設(shè)計(jì)還是一個(gè)很陌生的詞,即使一些專門從事網(wǎng)站與多媒體設(shè)計(jì)的人也不完全理解UI的意思。UI的本意是用戶界面,是英文User和 In

40、terface的縮寫。從字面上看是用戶與界面2個(gè)組成部分,但實(shí)際上還包括用戶與界面之間的交互關(guān)系。</p><p>  在飛速發(fā)展的電子產(chǎn)品中,界面設(shè)計(jì)工作一點(diǎn)點(diǎn)的被重視起來。做界面設(shè)計(jì)的“美工”也隨之被稱之為“UI設(shè)計(jì)師”或“UI工程師”。其實(shí)軟件界面設(shè)計(jì)就像工業(yè)產(chǎn)品中的工業(yè)造型設(shè)計(jì)一樣,是產(chǎn)品的重要賣點(diǎn)。一個(gè)電子產(chǎn)品擁有美觀的界面會(huì)給人帶來舒適的視覺享受,拉近人與商品的距離,為商家創(chuàng)造賣點(diǎn)。界面設(shè)計(jì)不是單純的

41、美術(shù)繪畫,他需要定位使用者、使用環(huán)境、使用方式并且為最終用戶而設(shè)計(jì),是建立在科學(xué)性之上的藝術(shù)設(shè)計(jì)[6]。</p><p>  綜合上述UI設(shè)計(jì)特點(diǎn),加上方便實(shí)用的設(shè)計(jì)特點(diǎn),我將本手機(jī)防盜應(yīng)用的UI分為了5層,他們由UI窗口層、UI主層、UI功能體驗(yàn)層、UI功能查看層和UI功能設(shè)置層組成。其層次流程如圖3.2所示。</p><p>  圖 3.2 UI總流程圖</p><

42、p><b>  UI窗口層</b></p><p>  UI窗口層分為兩個(gè)界面,一個(gè)是初次開啟應(yīng)用時(shí)進(jìn)入的設(shè)置初始化界面,另一個(gè)則是用戶在非第一次開啟應(yīng)用時(shí)彈出的用戶身份驗(yàn)證窗口。</p><p>  圖 3.3 初始化設(shè)置</p><p>  當(dāng)用戶第一次開啟應(yīng)用時(shí),展現(xiàn)在用戶眼前的是一個(gè)設(shè)置初始化界面,如圖3.3所示。用戶可按照相應(yīng)提

43、示完成放到設(shè)置,其中包括設(shè)置防盜安全密碼和設(shè)置安全電話號(hào)碼。防盜安全密碼將用于驗(yàn)證應(yīng)用本軟件用戶的身份,在非第一次開啟此防盜軟件時(shí)將需要用戶輸入防盜安全密碼。另外,設(shè)置好的防盜安全密碼將會(huì)編進(jìn)防盜指令,用于控制手機(jī)實(shí)現(xiàn)相應(yīng)的操作。安全手機(jī)號(hào)的設(shè)置非常重要,設(shè)置成功后,此號(hào)碼將被認(rèn)為是唯一可信賴的手機(jī)號(hào)碼,當(dāng)手機(jī)被盜后,防盜軟件將會(huì)按照指令向安全號(hào)碼手機(jī)發(fā)送手機(jī)狀態(tài)。</p><p>  圖 3.4 驗(yàn)證窗口<

44、;/p><p>  圖3.4展現(xiàn)的是用戶在非首次開啟應(yīng)用時(shí)彈出的驗(yàn)證用戶信息窗口。此通行密碼為用戶設(shè)置的防盜安全密碼,通過此方式保證了用戶設(shè)置信息的安全性。</p><p>  UI窗口層為本應(yīng)用軟件的最頂層,此層的UI設(shè)計(jì)好壞決定了用戶對(duì)本軟件的第一印象,所以要想得到用戶的肯定,這層的設(shè)計(jì)一定要做好。為此,在選擇文字的字體、顏色、大小以及擺放位置做了無數(shù)次的調(diào)整,努力達(dá)到最好、最舒適。除了這

45、些我還在輸入文本框里加進(jìn)了提示信息如:輸入密碼框里的“6~12位數(shù)字或字母”等,在方便用戶應(yīng)用的同時(shí)也美化了UI。</p><p><b>  UI主層</b></p><p>  UI主層是個(gè)選擇界面如圖3.5,本層為用戶提供3種主要操作,分別為防盜功能體驗(yàn)、防盜指令查看、防盜信息設(shè)置。</p><p>  圖 3.5 UI主層</p&

46、gt;<p>  在本層UI的上面是一個(gè)宇宙圖片,寓意著安裝本應(yīng)用后,即使你的手機(jī)被帶到了宇宙我們也能找到它,當(dāng)然這有些夸張了,不過我們還是要對(duì)此軟件充滿信任的。</p><p>  除了這張宇宙圖片我還在每個(gè)選項(xiàng)前后都加附上了相應(yīng)功能的logo,學(xué)習(xí)360的多圖設(shè)計(jì),用視覺告訴用戶本條選項(xiàng)的功能。</p><p>  為達(dá)到UI布局整齊的效果,我采用列表式布局,將選項(xiàng)按照用

47、戶需求量進(jìn)行排布,這樣的布局可是UI實(shí)現(xiàn)整齊、清晰、功能突出等效果,屬于理想的UI設(shè)計(jì)。</p><p><b>  UI功能體驗(yàn)層</b></p><p>  UI功能體驗(yàn)層如圖3.6所示,此UI界面同樣繼承優(yōu)良設(shè)計(jì)布局方案將本應(yīng)用所有功能統(tǒng)一以列表形式列出,最前端圖標(biāo)代表著此條選項(xiàng)所要實(shí)現(xiàn)的功能,然后每個(gè)選項(xiàng)的功能說明以大字功能名加小子簡(jiǎn)要說明的形式整齊的展現(xiàn)在界

48、面上,讓用戶對(duì)選項(xiàng)功能一目了然。</p><p>  圖 3.6 UI功能體驗(yàn)層</p><p>  當(dāng)用戶點(diǎn)擊進(jìn)入U(xiǎn)I功能體驗(yàn)層的每個(gè)選項(xiàng)后,就會(huì)看到每個(gè)功能實(shí)現(xiàn)的具體說明,而且在每個(gè)可以單機(jī)實(shí)驗(yàn)的功能里都加進(jìn)了功能體驗(yàn)按鈕,可以讓用戶體驗(yàn)本功能的真實(shí)效果。其效果圖見附錄一。 </p><p><b>  UI指令查看層</b></p&

49、gt;<p>  在UI指令查看層,總結(jié)羅列了開啟每個(gè)防盜功能的防盜指令,用戶可以在這里方便快捷的得到所需防盜指令,如圖3.7所示。</p><p>  圖 3.7 UI指令查看層</p><p><b>  UI信息設(shè)置層</b></p><p>  UI的設(shè)置層是UI非常重要的一個(gè)視圖層,此層要以最方便,最簡(jiǎn)約,最快捷為核心排

50、版設(shè)計(jì),而且要盡量覆蓋本軟件的所有功能設(shè)置。基于以上要點(diǎn),首先總結(jié)本防盜軟件的設(shè)置功能如表2。</p><p><b>  表格 2設(shè)置功能</b></p><p>  按照表格2中的功能需求,我在設(shè)置UI里建立了與之相應(yīng)的5個(gè)控件,以方便用戶對(duì)軟件的應(yīng)用控制。最終設(shè)計(jì)出圖3.8的效果來實(shí)現(xiàn)功能。</p><p>  圖 3.8 UI設(shè)置層&l

51、t;/p><p>  Function設(shè)計(jì)</p><p>  我們?cè)赨I的設(shè)計(jì)中了解到一款軟件擁有一個(gè)美觀的UI是多么重要,那我們?cè)撊绾螌?shí)現(xiàn)這種華麗的顯示呢?這就需要又一個(gè)很好的后臺(tái)設(shè)計(jì)既功能設(shè)計(jì)。</p><p><b>  應(yīng)用初始化</b></p><p>  初始化界面是讓用戶設(shè)置信息用的,所以首先我要告訴用戶需要

52、設(shè)置的信息都有哪些,介紹完后還要在相應(yīng)的位置給出用于填寫信息的控件。</p><p>  這里我們用Android中最常用的TextView和EditText兩個(gè)布局控件滿足需求。并且在EditText里加入hint屬性顯示相關(guān)提示信息。對(duì)于密碼的設(shè)置,我們都希望處于不可見狀態(tài)以保證我們個(gè)人信息的安全,我用password屬性來控制輸入時(shí)的顯示狀態(tài)。在整個(gè)UI的最下面我還放置了兩個(gè)按鈕,方便用戶的進(jìn)一步應(yīng)用和退出

53、,此功能將用Button控件實(shí)現(xiàn)。</p><p><b>  功能選擇</b></p><p>  功能選擇的UI主要分為兩部分,可以從上到下分為兩段,在布局控件中用LinearLayout實(shí)現(xiàn),并設(shè)置排版屬性為垂直布局。上半部為一個(gè)圖片,下面則需要一個(gè)List控件完成效果,整個(gè)UI的程序?qū)⒂美^承ListActivity類來描述已達(dá)到選項(xiàng)羅列的效果[7]。</

54、p><p>  圖3.9為Android的文件管理。在Android中所有資源文件要統(tǒng)一管理并放到res文件夾中,并把每個(gè)資源都加上各自的ID,以方便調(diào)用。所有的調(diào)用ID則會(huì)放到gen文件夾下的R.java文件中進(jìn)行統(tǒng)一遍歷,我們所要的資源便可從這里索取。例如我們的宇宙圖片。</p><p>  圖 3.9 文件管理</p><p><b>  功能體驗(yàn)<

55、;/b></p><p>  功能體驗(yàn)UI分為兩層呈現(xiàn)。外面一層同樣用一個(gè)繼承ListActivity的類來實(shí)現(xiàn),在list空間里排布好每個(gè)圖標(biāo)和文字的位置,這里要用到ImageView控件添加圖片。內(nèi)層則是一個(gè)介紹體驗(yàn)層,這層的總體排布用LinearLayout的垂直分布就可以完成。添加Button按鈕實(shí)現(xiàn)用戶體驗(yàn)功能。</p><p><b>  功能查看</b&

56、gt;</p><p>  這個(gè)界面完全是文字的排布,同樣用ListActivity加以LinearLayout垂直型布局就可以完成。</p><p><b>  功能設(shè)置</b></p><p>  功能設(shè)置UI為用戶可操控界面,所以要使用繼承PreferenceActivity的類來完成相應(yīng)的功能,此類是Android專門用來做UI設(shè)置界面

57、用的,所以這個(gè)類中方法的應(yīng)用也相對(duì)方便,但其布局文件與眾不同,需要在res文件中新建個(gè)XML文件進(jìn)行單獨(dú)管理。其布局空間類型主要分為3大類AppWidget Provider、PreferenceScreen和Searchable,其中最常用的是PreferenceScreen,在這里又包含CheckBoxPreference、EditTextRreference、ListPreference、Preference、Rreference

58、Category、PreferenceScreen和RingtonePreference7個(gè)控件[8]。我們的UI設(shè)置界面就用PreferenceScreen來完成。</p><p><b>  Service設(shè)計(jì)</b></p><p>  手機(jī)防盜應(yīng)用軟件在實(shí)際應(yīng)用過程中一定是常駐后臺(tái)的軟件,所以不管用戶是否打開軟件,只要是開啟了防盜功能,那此軟件就會(huì)一直在后臺(tái)運(yùn)

59、行,出于這樣的考慮,我們就必須引進(jìn)一個(gè)強(qiáng)大的后臺(tái)支持,那就是Service既后臺(tái)服務(wù)。</p><p><b>  數(shù)據(jù)庫存儲(chǔ)服務(wù)</b></p><p>  在Android系統(tǒng)中,用于保存數(shù)據(jù)有3種方式:SQLite、SharedPreferences和File。</p><p>  SQLite是一種嵌入式系統(tǒng)中很常見的數(shù)據(jù)庫,而且所有的

60、數(shù)據(jù)都儲(chǔ)存在一個(gè)文件中,便于遷移。SQLite有見解的SQL訪問界面、相當(dāng)快的速度,而且僅占用相對(duì)其他數(shù)據(jù)庫少量的內(nèi)存空間。在Android平臺(tái)上,SQLite庫可以用來存儲(chǔ)應(yīng)用程序中使用到的數(shù)據(jù),還可以通過定義Content Provider等方式,來讓其他應(yīng)用程序也可以取用其中的數(shù)據(jù)[9]。</p><p>  SharedPreferences是以鍵值對(duì)來存儲(chǔ)應(yīng)用程序的配置信息的一種方式,它只能存儲(chǔ)基本數(shù)據(jù)

61、類型。一個(gè)程序的配置文件僅可以在本應(yīng)用程序中使用,或者說只能在同一個(gè)包內(nèi)使用,不能在不同的包之間使用。實(shí)際上sharedPreferences是采用了XML格式將數(shù)據(jù)存儲(chǔ)到設(shè)備中,在DDMS中的File Explorer中的/data/data//shares_prefs下。</p><p>  File是一種文件存儲(chǔ)方式也是一種較常用的方法,在Android中讀取/寫入文件的方法,與Java中實(shí)現(xiàn)I/O的程序是

62、完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取設(shè)備上的文件。</p><p>  具體問題具體分心,根據(jù)我們的需要與要求,本程序最終選定用SharedPreferences來存儲(chǔ)我們的數(shù)據(jù)。我們將用戶設(shè)置的安全密碼、安全手機(jī)號(hào)、防盜功能開關(guān)狀態(tài)、SIM卡的IMSI碼等信息以鍵值對(duì)的形式存入其中進(jìn)行保存。一個(gè)Value對(duì)應(yīng)一個(gè)Key值,如圖3.10所示,Key值便是我們

63、所保存的數(shù)據(jù)信息,這樣的保存方式既快捷又準(zhǔn)確。</p><p>  圖 3.10 數(shù)據(jù)庫存儲(chǔ)方式</p><p><b>  監(jiān)聽按鈕事件服務(wù)</b></p><p>  監(jiān)聽器是Android設(shè)計(jì)的一種監(jiān)聽模式,當(dāng)用戶執(zhí)行了某些動(dòng)作時(shí),需要系統(tǒng)對(duì)這些動(dòng)作做出相應(yīng)的反應(yīng),那么這時(shí)就需要監(jiān)聽器來捕獲這些來自用戶的信息,將其傳遞給系統(tǒng)再做處理。&l

64、t;/p><p>  在我們的軟件中將會(huì)運(yùn)用大量的監(jiān)聽器,其中包括監(jiān)聽用戶點(diǎn)擊按鈕事件、監(jiān)聽開機(jī)廣播事件、監(jiān)聽短信廣播事件等。</p><p>  監(jiān)聽按鈕事件,是將每個(gè)按鈕綁定上一個(gè)監(jiān)聽器,用Button.setOnClickListener()方法來實(shí)現(xiàn),當(dāng)觸發(fā)相應(yīng)的監(jiān)聽器后我們就可以執(zhí)行我們想要的操作了。</p><p>  開機(jī)啟動(dòng)和短信廣播服務(wù)</p&g

65、t;<p>  防盜應(yīng)用開啟后會(huì)在第一時(shí)間對(duì)手機(jī)的SIM卡進(jìn)行檢查,判斷時(shí)候更換。那么這種監(jiān)聽開機(jī)需要另一項(xiàng)Android機(jī)制的支持來完成——廣播機(jī)制。</p><p>  在 Android 里面有各種各樣的廣播,比如電池的使用狀態(tài),電話的接收和短信的接收都會(huì)產(chǎn)生一個(gè)廣播。圖3.11就是一張廣播的運(yùn)行機(jī)制原理圖。</p><p>  圖 3.11 Android廣播機(jī)制&l

66、t;/p><p>  各種廣播在Android 系統(tǒng)中運(yùn)行,當(dāng)系統(tǒng)/應(yīng)用程序運(yùn)行時(shí)便會(huì)向 Android 注冊(cè)各種廣播,Android 接收到廣播會(huì)便會(huì)判斷哪種廣播需要哪種事件,然后向不同需要事件的應(yīng)用程序注冊(cè)事件,不同的廣播可能處理不同的事件也可能處理相同的廣播事件,這時(shí)就需要Android 系統(tǒng)為我們做篩選。</p><p>  本軟件就利用開機(jī)廣播和短信接收廣播來判斷手機(jī)狀態(tài)和控制手機(jī)。

67、</p><p><b>  GPS服務(wù)</b></p><p>  對(duì)于GPS我想大家現(xiàn)在都很了解,至少不會(huì)陌生,一般情況下每個(gè)裝載GPS的設(shè)備都會(huì)由3顆衛(wèi)星進(jìn)行定位,在需要時(shí)可將設(shè)備所在的位置信息發(fā)送到GPS上,例如返回的經(jīng)緯度,有了這些位置信息我們便可進(jìn)行需要的操作[10]。</p><p>  在本應(yīng)用中將會(huì)運(yùn)用Android手機(jī)的GP

68、S定位系統(tǒng),為我們獲取手機(jī)的當(dāng)前位置,便于用戶找回丟失的手機(jī)</p><p><b>  私人數(shù)據(jù)的管理</b></p><p>  當(dāng)用戶的手機(jī)丟失后恐怕最擔(dān)心的就是自己私人信息的外露,出于此考慮,本軟件將通過繼承IntentService的類,對(duì)用戶的通訊錄、媒體圖片進(jìn)行備份并向安全手機(jī)發(fā)送,同時(shí)將原有數(shù)據(jù)刪除,以防止不法分子的非法企圖。</p>&

69、lt;p>  手機(jī)防盜應(yīng)用方案的實(shí)施</p><p>  按照手機(jī)防盜應(yīng)用技術(shù)的設(shè)計(jì)理念,我將從UI入手,在做完界面的基礎(chǔ)上組合、銜接并加入相應(yīng)的功能,最后通過Service實(shí)現(xiàn)后臺(tái)監(jiān)聽、儲(chǔ)存、處理等功能。</p><p>  在實(shí)現(xiàn)這些功能之前我們需要先搭建Android開發(fā)環(huán)境,其具體操作流程見附表二。</p><p><b>  UI的實(shí)現(xiàn)&l

70、t;/b></p><p>  在Android系統(tǒng)中,UI的構(gòu)建主要都由Activity類來完成。為了開發(fā)方便,Android又構(gòu)造了多個(gè)繼承Activity類的子類。其中在我們的軟件里用到了ListActivity和PreferenceActivity兩個(gè)子類和Activity本身。</p><p><b>  Activity </b></p>

71、<p>  要使用Activity以及其子類首先要知道Activity的生命周期,只有知道其生命周期的順序才能控制好界面的顯示。圖4.1為Google官方給出的Activity生命周期流程圖。</p><p>  圖 4.1 Activity生命周期</p><p>  在本軟件中有8個(gè)UI直接通過繼承Activity類構(gòu)成,他們的應(yīng)用方法大同小異,我就拿其中最復(fù)雜的初始化界

72、面來介紹。</p><p>  初始化界面的整體設(shè)計(jì)流程圖如圖4.2所示。</p><p>  圖 4.2 初始化UI流程圖</p><p><b>  .java文件:</b></p><p>  首先新建一個(gè)繼承Activity的類First</p><p>  Public class Fi

73、rst extends Activity{}</p><p>  在此類里面對(duì)UI界面進(jìn)行編輯</p><p><b>  以下為關(guān)鍵代碼:</b></p><p>  圖 4.3 layout布局控件示意圖</p><p>  layout.xml文件:</p><p>  為Activity提

74、供布局支持的layout文件是UI如何顯示的控制中心,這個(gè)文件里的控件屬性決定了控件的顯示位置,圖4.3是為First提供布局控件的layout的示意圖,其主要代碼如下:</p><p>  AndroidManifest.xml文件:</p><p>  Android中設(shè)立了一個(gè)統(tǒng)一管理文件,這個(gè)文件可以理解為Android的一個(gè)注冊(cè)表文件,在這個(gè)文件中,我們可以聲明我們自己定義的權(quán)限

75、。如果所用的組件需要權(quán)限但沒有在這個(gè)文件注冊(cè),應(yīng)用程序就會(huì)無法正常運(yùn)行。任何一個(gè)Activity類都是需要注冊(cè)的,所以本應(yīng)用的 AndroidManifest.xml主要代碼如下:</p><p>  ListActivity</p><p>  ListActivity 直接繼承于Activity,是手機(jī)基本應(yīng)用中最常用的一類應(yīng)用程序。ListActivity用來在屏幕中顯示一個(gè)列表,當(dāng)

76、點(diǎn)擊其中的某一列時(shí),可以觸發(fā)一些操作。我們通過設(shè)置一個(gè)onListItemClick函數(shù),來得到用戶正選擇了哪一列的信息,并做后續(xù)處理。使用了ListActivity類后,如果整個(gè)屏幕上只需顯示一個(gè)列表,我們甚至可以把setContentView一行注釋掉,不用定義列表的XML說明文件。因?yàn)長istActivity類已經(jīng)默認(rèn)綁定了一個(gè)ListView(列表視圖)界面組件。圖4.4就是一個(gè)典型的ListView示意圖。</p>

77、<p>  圖 4.4 ListView示意圖</p><p>  在本軟件中,UI主層和UI功能體驗(yàn)層的列表視圖就是通過直接繼承ListActivity這個(gè)類得到的。在繼承ListActivity的類中要想顯示列表內(nèi)容就必須要調(diào)用setListAdapter(listAdapter)方法,在這個(gè)方法中需要傳進(jìn)一個(gè)listAdapter參數(shù),這個(gè)Adapter通常我們叫做適配器,我們要顯示出來的數(shù)據(jù)

78、就儲(chǔ)存在這個(gè)listAdapter當(dāng)中。在list中的每一個(gè)數(shù)據(jù)都是一個(gè)HashMap。HashMap就是一種Map,在Map中數(shù)據(jù)都是以鍵值對(duì)的方式存在的,這樣,我們的數(shù)據(jù)最終在List中的存儲(chǔ)方式就是以鍵值對(duì)的形式存在的。我們只需要給Value對(duì)應(yīng)的Key賦值就可以把我們要顯示的數(shù)據(jù)裝進(jìn)List中了。下面以UI功能體驗(yàn)層為例根據(jù)圖4.5的程序流程圖分析下代碼:</p><p>  圖 4.5 體驗(yàn)功能UI流程

79、圖</p><p><b>  Java文件:</b></p><p>  圖 4.6 ListActivity中l(wèi)ayout框架</p><p>  layout.xml文件:</p><p>  圖4.6展示了在ListActivity中兩個(gè)layout的布局框架,以下為代碼分析:</p><p&

80、gt;  tiyan.xml文件:</p><p>  在tiyan.xml文件中只有一個(gè)ListView控件</p><p>  PreferenceActivity</p><p>  在Android中有一個(gè)Preference類,用于手機(jī)的屬性設(shè)置。因此當(dāng)我們?cè)诮缑嫔献鲈O(shè)置的時(shí)候自然就會(huì)想到Activity+Preference的組合,前者用于界面的構(gòu)造,后

81、者用于設(shè)置數(shù)據(jù)的存放。不過雖然做法沒錯(cuò),但是會(huì)比較繁瑣,因?yàn)槊總€(gè)設(shè)置選項(xiàng)都要建立與其對(duì)應(yīng)的Preference。當(dāng)然Android的設(shè)計(jì)者也考慮到了這點(diǎn),在系統(tǒng)中為我們提供了一個(gè)專門用于開發(fā)界面設(shè)置的類PreferenceActivity,這個(gè)類完美結(jié)合了Activity與Preference,很大程度的方便了我們的開發(fā),因此我們的UI功能設(shè)置界面就是通過繼承此類的類來實(shí)現(xiàn)。</p><p>  繼承Prefer

82、enceActivity的UI設(shè)置界面的java文件無需過多的編程代碼,因?yàn)樵赑referenceActivity上做的任何設(shè)置,系統(tǒng)都會(huì)自動(dòng)以鍵值對(duì)的方式儲(chǔ)存到數(shù)據(jù)庫里,當(dāng)我們需要這些數(shù)據(jù)的時(shí)候,便可以直接從數(shù)據(jù)庫里調(diào)用。所以我們只需要在布局文件中按需求添加控件就可以了。</p><p>  PreferenceActivity的布局文件有些特殊,需要在res文件夾下新建一個(gè)xml文件夾用于單獨(dú)存放此類控件和布

83、局屬性,如圖4.7所示。</p><p>  圖 4.7 Preference的布局文件</p><p>  其shezhi.xml文件構(gòu)架如圖4.8所示。</p><p>  圖 4.8 shezhi.xml文件構(gòu)架</p><p>  控件屬性在本軟件中的應(yīng)用如圖4.9所示。</p><p>  圖 4.9 she

84、zhi.xml文件屬性構(gòu)架</p><p>  其代碼就是對(duì)屬性進(jìn)行相應(yīng)配置即可如android:password="true"等,這里就不做詳細(xì)介紹了,具體代碼請(qǐng)看附錄二。</p><p><b>  Dialog</b></p><p>  Dialog是android開發(fā)過程中最常用到的組件之一,它包括以下幾種類型:&

85、lt;/p><p>  警告對(duì)話框:Alertialog </p><p>  進(jìn)度對(duì)話框:ProgressDialog </p><p>  日期選擇對(duì)話框:DatePickerDialog </p><p>  時(shí)間選擇對(duì)話框:TimePickerDialog </p><p>  自定義對(duì)話框:從Dialog繼承 &

86、lt;/p><p>  Dialog的創(chuàng)建方式有兩種:</p><p>  一是直接new一個(gè)Dialog對(duì)象,然后調(diào)用Dialog對(duì)象的show和dismiss方法來控制對(duì)話框的顯示和隱藏。</p><p>  二是在Activity的onCreateDialog(int id)方法中創(chuàng)建Dialog對(duì)象并返回,然后調(diào)用Activty的showDialog(int i

87、d)和dismissDialog(int id)來顯示和隱藏對(duì)話框。</p><p>  區(qū)別在于通過第二種方式創(chuàng)建的對(duì)話框會(huì)繼承Activity的屬性,比如獲得Activity的menu事件等。</p><p>  本軟件就采用第二種方法用于顯示彈出的對(duì)話框。其程序流程圖如圖4.10所示。</p><p>  圖 4.10 Dialog流程圖</p>

88、<p>  java文件關(guān)鍵代碼如下:</p><p>  經(jīng)過大量的調(diào)整、核對(duì)以及調(diào)試,我們的UI界面就這樣完成啦。到此為止把我們的軟件安裝到手機(jī)上就可以進(jìn)行所有界面的切換了。</p><p>  由Sever支持的Function實(shí)現(xiàn)</p><p>  有了完整的UI,我們就可以在Function里實(shí)現(xiàn)這些UI對(duì)應(yīng)的功能。對(duì)于任何一個(gè)軟件來說,無論

89、它有什么樣的UI,人們最終想要獲得的還是軟件的功能。所以,只有Function的完美實(shí)現(xiàn)才能體現(xiàn)出一個(gè)軟件的真正價(jià)值。</p><p><b>  廣播機(jī)制服務(wù)</b></p><p>  之前已經(jīng)介紹了Android系統(tǒng)中廣播機(jī)制的概念,這里就主要說明在本軟件中所用到的3種廣播——開機(jī)完成廣播、服務(wù)狀態(tài)廣播和短信接收廣播。</p><p> 

90、 開機(jī)完成廣播和服務(wù)狀態(tài)廣播用于監(jiān)測(cè)SIM卡的狀態(tài)改變。當(dāng)用戶開機(jī)完成時(shí),系統(tǒng)就會(huì)向接收開機(jī)完成廣播的應(yīng)用軟件發(fā)送開機(jī)完成廣播,告訴他們已完成開機(jī)動(dòng)作,此時(shí)軟件就可以在接收此指令后做出自己需要的動(dòng)作,例如開機(jī)運(yùn)行的軟件就都需要接收開機(jī)完成廣播。服務(wù)狀態(tài)廣播也是同樣的原理,當(dāng)手機(jī)檢測(cè)到信號(hào)后就會(huì)由系統(tǒng)向所有應(yīng)用發(fā)送服務(wù)狀態(tài)改變的廣播。</p><p>  短信接收廣播是當(dāng)手機(jī)接收到短信時(shí)Android系統(tǒng)向應(yīng)用程序

91、發(fā)送的一種廣播。手機(jī)系統(tǒng)中自帶的有些功能都要通過這種廣播來完成動(dòng)作。例如手機(jī)收到短信時(shí)會(huì)產(chǎn)生音樂和振動(dòng)等狀態(tài),這就是由短息模塊在接收到系統(tǒng)短信接收廣播后作出的動(dòng)作。</p><p>  為了接收來自系統(tǒng)的廣播,Android為開發(fā)者提供了一個(gè)專門用于接收廣播的類既BroadcastReceiver類,本軟件就通過繼承此類實(shí)現(xiàn)接收所有廣播。在Android中光有接收的類還不行,要想讓系統(tǒng)把廣播發(fā)送到你的應(yīng)用程序還必

92、須在AndroidManifest.xml文件中進(jìn)行權(quán)限注冊(cè),讓系統(tǒng)知道你需要接收廣播并給你開放ROOT允許你使用才行。下面代碼為本應(yīng)用所有的權(quán)限注冊(cè)代碼:</p><p>  在本軟件中遠(yuǎn)程控制手機(jī)就是通過此短信廣播接收機(jī)制實(shí)現(xiàn)的。當(dāng)系統(tǒng)收到短信后會(huì)向需要接收廣播的應(yīng)用發(fā)送短信廣播,本應(yīng)用接收廣播后就可根據(jù)短信內(nèi)容做出相應(yīng)的動(dòng)作了。其服務(wù)程序流程圖如圖4.11所示。</p><p>  

93、圖 4.11 SMS服務(wù)流程圖</p><p>  短信接收后臺(tái)服務(wù)關(guān)鍵代碼解析如下:</p><p><b>  換卡短信通知</b></p><p>  本應(yīng)用在開機(jī)完成后首先接收系統(tǒng)發(fā)出的開機(jī)完成廣播,這時(shí)軟件就會(huì)在后臺(tái)開始檢測(cè)SIM卡的IMSI碼信息,如果此信息與原保存的IMSI碼不一致,則說明手機(jī)處于非安全狀態(tài)。待手機(jī)檢測(cè)到信號(hào),可執(zhí)

94、行移動(dòng)服務(wù)的時(shí)候,服務(wù)狀態(tài)廣播就會(huì)向手機(jī)所有應(yīng)用發(fā)送此廣播。當(dāng)本應(yīng)用接收到此廣播后就會(huì)立即向安全手機(jī)號(hào)發(fā)送SIM卡被更換的報(bào)告。其服務(wù)效果如圖4.12所示。</p><p>  圖 4.12 開機(jī)檢測(cè)SIM卡信息流程圖</p><p>  開機(jī)檢測(cè)SIM卡程序主要代碼分析如下:</p><p><b>  定位手機(jī)</b></p>

95、<p>  Android系統(tǒng)可通過手機(jī)的GPS模塊為我們提供當(dāng)前手機(jī)的位置信息既經(jīng)緯度。然后我們?cè)偻ㄟ^向服務(wù)器發(fā)送地址請(qǐng)求的方式得到手機(jī)的具體位置既街道等。其具體實(shí)現(xiàn)流程圖如圖4.13所示。</p><p>  圖 4.13 GPS定位流程圖</p><p>  GPS定位的主要代碼分析如下:</p><p>  有了提供具體位置的GPS服務(wù)類,我們只

96、需將信息通過SMS發(fā)送到指定安全號(hào)碼即可遠(yuǎn)程獲得手機(jī)的具體位置了。</p><p><b>  數(shù)據(jù)銷毀</b></p><p>  為了避免隱私泄露,我們需要?jiǎng)?chuàng)建一個(gè)專門的類用于處理我們的用戶信息,此類應(yīng)具有備份和刪除兩個(gè)功能。對(duì)于用戶的隱私文件我們把焦點(diǎn)主要放在聯(lián)系人和媒體上。因此,我們需要連接并提取聯(lián)系人和媒體的資料,并擁有刪除這些文件的權(quán)限方可達(dá)到目的。其實(shí)現(xiàn)

97、流程圖為圖4.14所示。</p><p>  圖 4.14 銷毀數(shù)據(jù)流程圖</p><p>  其主要代碼分析如下:</p><p><b>  鎖定手機(jī)</b></p><p>  當(dāng)收到鎖定手機(jī)的指令后,要求手機(jī)立刻進(jìn)入鎖屏狀態(tài),只能在屏幕上輸入安全密碼,密碼驗(yàn)證通過后手機(jī)會(huì)恢復(fù)正常,要是密碼錯(cuò)誤則會(huì)禁止用戶任何操作

98、,直到密碼輸入正確為止才能使用。其實(shí)現(xiàn)效果如圖4.15所示。</p><p>  圖 4.15 鎖屏流程圖</p><p>  根據(jù)程序流程,所以用戶一定要在安裝完本應(yīng)用后實(shí)現(xiàn)一次鎖屏獲得ROOT權(quán)限后方可遠(yuǎn)程控制鎖屏功能實(shí)現(xiàn)。以下為功能實(shí)現(xiàn)分析:</p><p>  DevicePolicyManager:顧名思義,這個(gè)類的作用是管理設(shè)備。通過這個(gè)類,我們可以實(shí)現(xiàn)

99、屏幕鎖定、亮度調(diào)節(jié)甚至是恢復(fù)出廠設(shè)置等功能。</p><p>  DeviceAdminReceiver:這個(gè)類的父類是BroadcastReceiver,通過其OnReceive方法可以根據(jù)不同的Action執(zhí)行不同的動(dòng)作。</p><p>  這個(gè)程序的開發(fā)過程大致如下:</p><p>  要想使用DevicePolicyManager中的方法,首先要定義一個(gè)

100、Component。然后通過管理這個(gè)組件來啟動(dòng)一個(gè)DeviceAdminReceiver。</p><p>  注冊(cè)一個(gè)廣播,用于監(jiān)聽權(quán)限的變化,代碼在AndroidMenifest.xml文件中:</p><p>  其中, android:resource="@xml/lock_screen_admin"所指向的內(nèi)容如下:</p><p> 

101、 實(shí)現(xiàn)一個(gè)繼承自DeviceAdminReceiver的類,實(shí)現(xiàn)必須的方法。這個(gè)類基本不用寫代碼,在此略過不表。</p><p>  這段代碼用來在第一次運(yùn)行的時(shí)候激活component,只要激活一次之后,這個(gè)component就會(huì)一直是激活的。使用startActivityForResult()可以在onResult方法中調(diào)用lockNow()來鎖屏,當(dāng)不是第一次運(yùn)行的時(shí)候,直接調(diào)用lockNow()鎖屏。&l

102、t;/p><p><b>  發(fā)報(bào)警音</b></p><p>  發(fā)報(bào)警音的功能實(shí)現(xiàn)比較簡(jiǎn)單,只需要在收到指令后在后臺(tái)開啟影音即可,主要代碼如下所示:</p><p><b>  數(shù)據(jù)庫存儲(chǔ)應(yīng)用</b></p><p>  由于本程序正常工作時(shí)運(yùn)行在后臺(tái),所以要運(yùn)用數(shù)據(jù)庫存放數(shù)據(jù)。這里數(shù)據(jù)庫的運(yùn)用在每

103、個(gè)單元功能內(nèi)都必不可少,是否開啟防盜功能、是否是第一次啟動(dòng)應(yīng)用程序、安全手機(jī)號(hào)、安全密碼等數(shù)據(jù)都交由數(shù)據(jù)庫保存。以安全密碼為例在程序中運(yùn)用代碼如下所示:</p><p><b>  手機(jī)防盜應(yīng)用測(cè)試</b></p><p>  同時(shí)開啟兩臺(tái)模擬器,兩臺(tái)的電話號(hào)碼分別為15555215554和15555215556。在15555215554上安裝本應(yīng)用軟件,另一臺(tái)用于發(fā)

104、送指令。</p><p><b>  防盜應(yīng)用初始化</b></p><p>  安裝完成后初始化手機(jī)防盜應(yīng)用,設(shè)置密碼為123456,安全手機(jī)號(hào)為15555215556。如圖5.1所示。</p><p>  圖 5.1 初始化設(shè)置</p><p>  在設(shè)置界面里開啟所有功能。</p><p>

105、  關(guān)閉此防盜應(yīng)用,退回到手機(jī)主界面。</p><p><b>  手機(jī)定位功能測(cè)試</b></p><p>  用15555215556向15555215554發(fā)送指令:123456#dingwei,(因?yàn)槭悄M器,所以需要預(yù)先在DDMS里給15555215554手機(jī)設(shè)定GPS地址。)等待片刻后即收到15555215554返回的地址信息如圖5.2所示。</p&

106、gt;<p>  圖 5.2 定位功能</p><p>  由于是模擬器演示,模擬器不支持中文,所以現(xiàn)在返回的是一些亂碼,到真機(jī)上就能看懂了。</p><p>  換卡短信通知功能測(cè)試</p><p>  接下來我們進(jìn)入DDMS,在Devices窗口里選中emulator-5554,然后在File Explorer窗口中進(jìn)入data/data/j.fa

107、ngdao文件夾,如圖5.3所示。</p><p>  圖 5.3 換卡通知date</p><p>  在shared_prefs文件夾中找到j(luò).fangdao_preferences.xml文件并將其倒出。如圖5.4所示。</p><p>  圖 5.4 數(shù)據(jù)庫位置</p><p>  這個(gè)文件就是數(shù)據(jù)庫文件,將其SIM卡的IMSI號(hào)碼更

108、改,然后倒入源地址,這樣就能模擬換卡的狀態(tài)了。數(shù)據(jù)庫IMSI碼更換前后如圖5.5和圖5.6所示。</p><p>  圖 5.5 數(shù)據(jù)庫IMSI碼更換前</p><p>  圖 5.6 數(shù)據(jù)庫IMSI碼更換后</p><p>  關(guān)閉15555215554模擬器然后再打開,開機(jī)完成后15555215556收到更換SIM卡信息如圖所示。</p><

109、p><b>  鎖屏功能測(cè)試</b></p><p>  用15555215556手機(jī)響15555215554手機(jī)發(fā)送指令:123456#suoding</p><p>  收到指令的15555215554手機(jī)手機(jī)立即進(jìn)入鎖屏狀態(tài)如圖5.7所示。</p><p>  圖 5.7 鎖屏功能</p><p><b

110、>  銷毀數(shù)據(jù)</b></p><p>  由于模擬器沒有SD卡,所以本功能只能在真機(jī)上測(cè)試,其測(cè)試方法同樣是靠短信指令實(shí)現(xiàn),測(cè)試后查看SD卡數(shù)據(jù)及手機(jī)通訊錄和媒體數(shù)據(jù)已全部清空。既銷毀數(shù)據(jù)功能實(shí)現(xiàn)。</p><p><b>  發(fā)報(bào)警音</b></p><p>  由于模擬器也無法播放媒體,所以也只能真機(jī)測(cè)試,由于本功能屬于

111、后臺(tái)運(yùn)行,真機(jī)測(cè)試時(shí),當(dāng)收到指令立即以最大音量報(bào)警,既發(fā)報(bào)警音功能實(shí)現(xiàn)。</p><p><b>  手機(jī)防盜應(yīng)用說明</b></p><p>  首先開啟防盜應(yīng)用軟件進(jìn)入初始化界面,在第一個(gè)文本框輸入安全密碼,第二個(gè)文本框輸入確認(rèn)密碼,兩次密碼輸入必須符合提示要求,否則將不被軟件認(rèn)可。在下面的文本框輸入安全手機(jī)號(hào)碼,此號(hào)碼建議輸入親友電話,在輸入非法號(hào)碼時(shí),軟件將給

112、出相應(yīng)提示并允許用戶重新輸入。</p><p>  手機(jī)SIM卡被更換:您向被盜手機(jī)發(fā)送了鎖定手機(jī)指令以上兩種情況,手機(jī)防盜將為您鎖定被盜手機(jī),防止別人使用您的手機(jī)或查看隱私信息。</p><p>  手機(jī)定位:手機(jī)被盜后,可以用任意手機(jī)發(fā)送定位手機(jī)指令到被盜手機(jī),獲取手機(jī)當(dāng)前位置,幫您找回手機(jī)。定位手機(jī)成功后,將會(huì)發(fā)送短信告知您手機(jī)的位置。</p><p>  *

113、定位手機(jī)指令:dingwei#防盜密碼</p><p>  銷毀數(shù)據(jù):手機(jī)被盜后,用安全手機(jī)號(hào)發(fā)送銷毀指令到被盜手機(jī),可徹底銷毀手機(jī)數(shù)據(jù),保護(hù)隱私不被泄露。銷毀的數(shù)據(jù)包括:通訊錄、短信、照片及SD卡的其他數(shù)據(jù)。特別提醒:銷毀數(shù)據(jù)指令必須使用安全手機(jī)號(hào)發(fā)送。</p><p>  *銷毀數(shù)據(jù)指令:xiaohui#防盜密碼</p><p>  鎖定手機(jī):當(dāng)手機(jī)收到鎖定手機(jī)

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論

0/150

提交評(píng)論