




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE 本 科 畢 業(yè) 設(shè) 計(jì) 題目:基于(jy)Android平臺的“無間(wjin)盜”防盜(fn do)軟件 地圖追蹤及遠(yuǎn)程指令 學(xué)生姓名: 學(xué) 號:系 別:專業(yè)班級 指導(dǎo)教師姓名及職稱:起止時(shí)間:摘 要:隨著Android系統(tǒng)的發(fā)展和智能手機(jī)逐漸平民化,其普及率呈指數(shù)增長。Android手機(jī)市場規(guī)模的擴(kuò)大所引起的手機(jī)安全和防盜的問題也愈發(fā)突出。本論文在基于Andorid平臺上,運(yùn)用Android短信、廣播等通信機(jī)制,配合第三方地圖服務(wù)商提供的地圖API對智能手機(jī)進(jìn)行遠(yuǎn)程指令控制和定位丟失的手機(jī),為找到手機(jī)增加可能性,并保護(hù)失主隱私。關(guān)鍵詞: 遠(yuǎn)程指令追蹤;Android防盜;百度(b
2、i d)地圖;Android廣播Abstract:With the increasing popularity of Android system development and smart phones. The Android phone expansion of market scale of mobile security and anti-theft problems become more prominent. This thesis is based on Andorid platform, use Android SMS, broadcasting and other comm
3、unication mechanisms, with the Maps API provided by a third-party map service provider smart phone remote command control and positioning lost phone, to increase the possibility to find the phone, and the protection of the owner privacy. Keywords: The remote command tracking; Android anti-theft; Bai
4、du map; Android broadcastPAGE II目 錄 TOC o 1-3 h z u HYPERLINK l _Toc24981 1. 緒論(xln) PAGEREF _Toc24981 1 HYPERLINK l _Toc28558 1.1. 研究意義(yy)與背景 PAGEREF _Toc28558 1 HYPERLINK l _Toc11174 1.2. 課題(kt)的目的及其意義 PAGEREF _Toc11174 1 HYPERLINK l _Toc3778 1.3. 本文的主要研究工作 PAGEREF _Toc3778 1 HYPERLINK l _Toc751
5、2. Android百度地圖API PAGEREF _Toc751 2 HYPERLINK l _Toc25304 2.1. 手機(jī)地圖服務(wù) PAGEREF _Toc25304 2 HYPERLINK l _Toc3840 2.2. 定位技術(shù) PAGEREF _Toc3840 2 HYPERLINK l _Toc25420 2.2.1. 基于GSM蜂窩基站定位 PAGEREF _Toc25420 2 HYPERLINK l _Toc26319 2.2.2. 基于GPS衛(wèi)星定位 PAGEREF _Toc26319 2 HYPERLINK l _Toc31488 2.2.3. 基于WIFI熱點(diǎn)定位
6、PAGEREF _Toc31488 3 HYPERLINK l _Toc17005 2.3. 百度地圖API簡介 PAGEREF _Toc17005 3 HYPERLINK l _Toc32660 3. 遠(yuǎn)程指令控制功能 PAGEREF _Toc32660 5 HYPERLINK l _Toc28554 3.1. 基本原理及設(shè)計(jì) PAGEREF _Toc28554 5 HYPERLINK l _Toc17497 3.2. 底層平臺導(dǎo)入和開發(fā)步驟 PAGEREF _Toc17497 6 HYPERLINK l _Toc18183 3.2.1. 申請密鑰 PAGEREF _Toc18183 6 H
7、YPERLINK l _Toc11806 3.2.2. 導(dǎo)入.jar和.so文件 PAGEREF _Toc11806 6 HYPERLINK l _Toc5155 3.2.3. 初始化聲明 PAGEREF _Toc5155 6 HYPERLINK l _Toc5672 3.3. 模塊框架圖 PAGEREF _Toc5672 7 HYPERLINK l _Toc8712 3.4. 模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc8712 8 HYPERLINK l _Toc32270 3.4.1. 指令接收器的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc32270 8 HYPERLINK l _Toc2751 3
8、.4.2. 指令業(yè)務(wù)分發(fā)器的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc2751 9 HYPERLINK l _Toc25424 3.4.3. 定位器的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc25424 11 HYPERLINK l _Toc31452 3.4.4. 報(bào)警響鈴器的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc31452 12 HYPERLINK l _Toc14571 3.4.5. 手持設(shè)備權(quán)限管理器的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc14571 14 HYPERLINK l _Toc30553 3.4.6. SIM卡更換通知功能的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc30553 15 HYPERL
9、INK l _Toc32303 4. 地圖追蹤功能 PAGEREF _Toc32303 16 HYPERLINK l _Toc24443 4.1. 功能簡介 PAGEREF _Toc24443 16 HYPERLINK l _Toc26019 4.2. 功能詳細(xì)設(shè)計(jì) PAGEREF _Toc26019 16 HYPERLINK l _Toc29367 5. 幫助與升級功能 PAGEREF _Toc29367 19 HYPERLINK l _Toc21443 5.1. 功能簡介 PAGEREF _Toc21443 19 HYPERLINK l _Toc8949 5.2. 幫助功能模塊 PAGER
10、EF _Toc8949 19 HYPERLINK l _Toc31951 5.3. 版本升級功能 PAGEREF _Toc31951 19 HYPERLINK l _Toc32157 6. 軟件測試與使用 PAGEREF _Toc32157 20 HYPERLINK l _Toc25105 6.1. 功能操作 PAGEREF _Toc25105 20 HYPERLINK l _Toc2638 6.2. 測試用例 PAGEREF _Toc2638 21 HYPERLINK l _Toc12857 6.3. 測試結(jié)果(ji gu)與發(fā)現(xiàn) PAGEREF _Toc12857 21 HYPERLINK
11、 l _Toc13376 7. 總結(jié)(zngji) PAGEREF _Toc13376 25 HYPERLINK l _Toc28103 參考文獻(xiàn) PAGEREF _Toc28103 26 HYPERLINK l _Toc15245 致 謝 PAGEREF _Toc15245 26PAGE 35緒論(xln)研究意義(yy)與背景隨著智能移動終端發(fā)展和普及,人們試圖讓交互的應(yīng)用伴隨移動的用戶在對應(yīng)的空間中遷移。從全球的發(fā)展趨勢來看,更高水平的基于位置服務(wù)(LBS)、基于空間定位等功能是新一代移動網(wǎng)絡(luò)應(yīng)該(ynggi)具備的,是網(wǎng)絡(luò)業(yè)務(wù)支撐能力的一種體現(xiàn),我國移動運(yùn)營商更已將其視為形象工程。LB
12、S依賴于高精度定位技術(shù)的發(fā)展,隨著定位技術(shù)的發(fā)展和人們網(wǎng)絡(luò)社交心理、行為的成熟;LBS將更加實(shí)用化,所衍生出的服務(wù)和產(chǎn)業(yè)鏈將更加豐富和廣闊,為用戶提供隨時(shí)隨身的服務(wù)。課題的目的及其意義基于地圖位置服務(wù)發(fā)展迅速,對人機(jī)界面與地理信息系統(tǒng)服務(wù)整合具有重要的理論和現(xiàn)實(shí)意義。本課題在此基礎(chǔ)上利用Androidd的短信通信機(jī)制、廣播機(jī)制以及第三方地圖軟件提供商的API,實(shí)現(xiàn)并研究手機(jī)防盜在移動技術(shù)上的新應(yīng)用。將手機(jī)防盜技術(shù)應(yīng)用于日常生活之中,對降低手機(jī)及其資料被盜的風(fēng)險(xiǎn)和減少個(gè)人的財(cái)產(chǎn)損失有著重大意義和應(yīng)用價(jià)值。 通過此課題,能夠培養(yǎng)學(xué)生動手能力,增強(qiáng)個(gè)人思維模式,鍛煉軟件開發(fā)中遇到問題的調(diào)試能力,進(jìn)而
13、加強(qiáng)專業(yè)技術(shù)。本文的主要研究工作本文主要研究的是基于Android系統(tǒng)短信通知機(jī)制的遠(yuǎn)程追蹤控制指令,以及第三方地圖API的使用,通過兩者的配合和應(yīng)用來鞏固手機(jī)防盜的防線。Android百度地圖API 手機(jī)(shu j)地圖服務(wù)手機(jī)地圖服務(wù)是指在手機(jī)上利用GPS或者網(wǎng)絡(luò)實(shí)現(xiàn)精確定位,通過使用WAP方式或客戶端方式,得到相關(guān)位置信息的業(yè)務(wù)。為用戶提供了一種便捷實(shí)用的掌上地圖,通過手機(jī)屏幕,用戶可以查詢城市信息、查找自己的位置、查找道路信息。它以矢量地圖、衛(wèi)星地圖、混合地圖3種服務(wù)模式向全球提供地圖搜索和逐級縮放功能(gngnng)的地圖服務(wù),讓全球用戶體驗(yàn)到了新的地圖服務(wù)模式。目前,主流的地圖服
14、務(wù)在國外有Google Maps,Yahoo地圖服務(wù),Virtual Earth服務(wù)三大服務(wù),而國內(nèi)則有搜狐旗下的搜狗、百度、高德等主要的地圖服務(wù)。本軟件(run jin)之所以選用百度地圖服務(wù)是因?yàn)槠涔δ芘c國外地圖相比更具本地特色,也更加實(shí)用,其位置相對與國內(nèi)而言也更為精準(zhǔn)。定位技術(shù)移動終端的定位是通過檢測移動終端和基站之間傳播信號的特征參數(shù)來獲得其幾何位置,在顯示應(yīng)用中,主要有三種常用的定位方式:基于GSM蜂窩基站定位把移動電話的服務(wù)區(qū)別分為一個(gè)個(gè)正六邊形的子區(qū),每個(gè)小區(qū)設(shè)一個(gè)基站。形成了形狀酷似“蜂窩”的結(jié)構(gòu)1,移動電話測量不同基站的下行導(dǎo)頻信號,得到不同基站下行導(dǎo)頻的TOA(Time
15、of Arrival,到達(dá)時(shí)刻)或TDOA(Time Difference of Arrivalm,到達(dá)時(shí)間差),根據(jù)該測量結(jié)果并結(jié)合基站的坐標(biāo),一般采用三角公式估計(jì)算法,就能夠計(jì)算出移動電話的位置。實(shí)際的位置估計(jì)算法需要考慮多基站(3個(gè)或3個(gè)以上)定位的情況,因此算法要復(fù)雜很多。一般而言,移動臺測量的基站數(shù)目越多,測量精度越高,定位性能改善越明顯?;贕PS衛(wèi)星定位 GPS的空間部分是由24顆衛(wèi)星組成(其中有21顆工作衛(wèi)星,3顆備用衛(wèi)星)。在空曠地帶且無阻擋的前提下,GPS定位技術(shù)的定位精度可達(dá)15米左右。但是,在很多情況下,GPS接收機(jī)不能夠捕獲足夠多的GPS衛(wèi)星信號,定位精度將會大大的降
16、低,甚至不能定位(如室內(nèi))。GPS系統(tǒng)主要由三大部分組成:GPS衛(wèi)星星座(空間部分)、地面監(jiān)控系統(tǒng)(控制部分)和GPS信號接收機(jī)(用戶部分)。GPS的定位原理就是根據(jù)高速運(yùn)動的衛(wèi)星瞬間位置作為已知的數(shù)據(jù),采用空間距離后方交會的方法,確定待測點(diǎn)的位置2。 我們通常所說的GPS往往僅只用戶設(shè)備部分,它通過接受天空不同位置的三顆以上的衛(wèi)星信號,手機(jī)捕獲到跟蹤的衛(wèi)星信號后,配合地面接收天線就可按定位解算方法進(jìn)行定位計(jì)算,計(jì)算出用戶所在地理位置的經(jīng)緯度、高度、速度、時(shí)間等信息。簡單來說是利用了數(shù)學(xué)上三條線確定一個(gè)空間點(diǎn)的原理。雖然(surn)GPS定位最為精準(zhǔn),但其缺點(diǎn)是耗電、定位慢并且無法室內(nèi)定位?;?/p>
17、于(jy)WIFI熱點(diǎn)(r din)定位基于WIFI熱點(diǎn)定位的原理跟GSM基站定位的原理差不多,前提是我們必須拿到WIFI路由器的SSID和信號強(qiáng)度。當(dāng)然,我們并不需要真正連接上指定的WIFI路由器,只需要探測到有WIFI存在即可。 定位端只要偵聽一下附近都有哪些熱點(diǎn),檢測一下每個(gè)熱點(diǎn)的信號強(qiáng)弱,然后把這些信息發(fā)送給Skyhook的服務(wù)器。服務(wù)器根據(jù)這些信息,查詢每個(gè)熱點(diǎn)在數(shù)據(jù)庫里記錄的坐標(biāo),進(jìn)行運(yùn)算,就能知道客戶端的具體位置了,再把坐標(biāo)告訴客戶端??梢韵胂?,只要收到的AP信號越多,定位就會越準(zhǔn)。百度地圖API簡介百度地圖移動版API(Android)是一套基于Android 1.5及以上設(shè)備
18、的應(yīng)用程序接口,通過該接口,您可以輕松訪問百度服務(wù)和數(shù)據(jù),構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用程序3。百度地圖移動版API不僅包含構(gòu)建地圖的基本接口,還提供了諸如地圖定位、本地搜索、路線規(guī)劃等數(shù)據(jù)服務(wù),你可以根據(jù)自己的需要進(jìn)行選擇。百度地圖API將復(fù)雜的底層邏輯進(jìn)行封裝,以一種便于開發(fā)者理解的方式提供。開發(fā)者只需要按照API文檔的要求進(jìn)行注冊即可使用,客戶端不需要安裝任何軟件、控件或地圖,所有運(yùn)算都會在百度公司的服務(wù)器中運(yùn)行,由API 進(jìn)行組織顯示、分級縮放和漫游。使用者只需要通過其 API,利用 Android開發(fā)包就可以將百度地圖服務(wù)應(yīng)用到自己的軟件中。其中客戶端主要完成地圖的加載、地圖瀏覽和
19、查詢功能,它的設(shè)計(jì)重點(diǎn)是地圖瀏覽和查詢界面,以及將用戶(yngh)的訪問和查詢請求打包發(fā)送給服務(wù)器9。應(yīng)用服務(wù)器方面則負(fù)責(zé)處理用戶的訪問和查詢請求,數(shù)據(jù)服務(wù)器則用于存取各類空間數(shù)據(jù)和屬性(shxng)信息,采用 SQL Server 數(shù)據(jù)庫存取表格,并在接到Query查詢指令后執(zhí)行相應(yīng)的操作9。系統(tǒng)(xtng)體系結(jié)構(gòu)如運(yùn)行如下圖所示。 圖2-1 地圖服務(wù)原理圖遠(yuǎn)程指令控制功能基本原理及設(shè)計(jì)(shj)本軟件的遠(yuǎn)程指令控制(kngzh)功能本質(zhì)上是使用了Android系統(tǒng)的短信收發(fā)和系統(tǒng)的廣播機(jī)制再加上自編的指令編碼實(shí)現(xiàn)對丟失手機(jī)的功能控制,我們把它定義為本軟件的第二道防線?;谶@道防線,我們可
20、以通過安全手機(jī)向丟失的手機(jī)進(jìn)行遠(yuǎn)程控制響鈴、PIN碼鎖屏、遠(yuǎn)程定位、獲取新SIM卡號碼和格式化丟失手機(jī)SD卡等功能。首先,需要為主機(jī)設(shè)置安全密碼和一個(gè)安全手機(jī)號碼,并對這兩個(gè)數(shù)據(jù)保存到系統(tǒng)(xtng)的配置文件。在這里使用到的是Android數(shù)據(jù)持久化的一種做法:SharePreference:SharePreference用來存儲和檢索一些關(guān)鍵變量的內(nèi)容,這些內(nèi)容常駐于手機(jī)xml文件之中,它是使用鍵值對的方式來存取文件中的數(shù)據(jù)的4。Android提供了一個(gè)SmsManager.class讓應(yīng)用程序擁有完整的權(quán)限來進(jìn)入SMS短信的管理,自從Android 1.5版本之后,SmsManager信
21、息管理器可以支持GSM和CDMA的移動手機(jī)通信標(biāo)準(zhǔn)。5發(fā)送一條SMS信息對Android系統(tǒng)來說有相當(dāng)規(guī)范的步驟:(1) 在AndroidMainifest.xml文件中聲明權(quán)限:(2) 使用SmsManager.getDefault()靜態(tài)方法,獲取SmsManger的實(shí)例:SmsManager mySms = SmsManager.getDefault();(3) 定義一個(gè)目標(biāo)號碼和發(fā)送文本,使用sendTextMessage()方法發(fā)送SMS信息到另一個(gè)Android設(shè)備:String destination = 123456789;String msg = Sending my fir
22、st message;mySMS.sendTextMessage(destination,null,msg,null,null); 在Android系統(tǒng)中有一個(gè)很重要的組件,那就是廣播BroadcastReceiver,廣播接收器組件用于接收和響應(yīng)系統(tǒng)廣播的消息。廣播接收器也需要通過Activity與用戶交互進(jìn)行橋接6。 Android系統(tǒng)在手機(jī)收到運(yùn)營商的短信后,會向手機(jī)每個(gè)應(yīng)用程序發(fā)送短信廣播,通知所有應(yīng)用程序此時(shí)此刻系統(tǒng)有短信接收,只要在程序中注冊短信廣播接收器,我們就可以在程序中分析短信文本。實(shí)現(xiàn)具體的操作和功能(gngnng)實(shí)現(xiàn)。系統(tǒng)的短息廣播標(biāo)志為:vider.Telephony
23、.SMS_RECEIVED。本軟件的遠(yuǎn)程指令控制需要(xyo)建立一套用于安全手機(jī)和被盜手機(jī)相互識別的指令集,在軟件中指令集的定義如下:發(fā)送定位丟失手機(jī)指令(zhlng):(wujiandao*密碼*dingwei)發(fā)送激活報(bào)警鈴聲指令:(wujiandao*密碼*baojing)發(fā)送設(shè)定屏保密碼指令:(wujiandao*密碼*suoding)發(fā)送格式化請求指令:(wujiandao*密碼*wipedata)發(fā)送確定格式化指令:(wujiandao*密碼*geshihua)獲取丟失手機(jī)坐標(biāo)指令:(Location#緯度#經(jīng)度*地址*)根據(jù)以上的指令集,在程序中開啟一個(gè)后臺服務(wù),在服務(wù)中注冊短
24、信廣播接收器,這里需要把廣播接收器的權(quán)限提至最高,保證一旦接收到系統(tǒng)的短信可以最先過濾和分析這些指令;一旦確定是以上指令集的內(nèi)容,則將指令解析并銷毀短信廣播,保證不影響其他應(yīng)用程序的正常工作。底層平臺導(dǎo)入和開發(fā)步驟申請密鑰百度地圖SDK提供的服務(wù)是免費(fèi)的,接口無使用次數(shù)限制。我們首先要需先申請密鑰(key),才可使用該套SDK。任何非營利性程序請直接使用,商業(yè)使用必須請參考使用須知。 HYPERLINK /map/android-mobile-apply-key.htm /map/android-mobile-apply-key.htm 通過這個(gè)網(wǎng)站同意與百度的協(xié)議,我們就可以獲得密鑰。導(dǎo)入.
25、jar和.so文件在項(xiàng)目Libraries里添加baidumapapi.jar,將libBMapApiEngine_v1_3_5.so復(fù)制到工程目錄下的libsarmeabi。初始化聲明(shngmng)地圖(dt)、定位、搜索功能都需要BMapManager來管理,BMapManager提供四個(gè)接口,init, start, stop, destroy。建議在Application里生成BMapManager對象并初始化,在程序退出時(shí)調(diào)用destory,在需要使用sdk功能的Activity的onCreate里調(diào)用start, onDestroy調(diào)用stop,或者onResume/onPau
26、se分別調(diào)用start和stop 1。模塊(m kui)框架圖圖 3-1 遠(yuǎn)程追蹤指令(zhlng)模塊流程圖模塊詳細(xì)(xingx)設(shè)計(jì)指令接收器的設(shè)計(jì)(shj)與實(shí)現(xiàn)指令接收器的核心類是SmsReceiver,該類是自定義的廣播接收器,繼承Android中的BroastReceiver,是程序遠(yuǎn)程控制指令的核心類,主要用于接收和解析收到的指令短信,對非指令短信進(jìn)行過濾;此類的使用首先(shuxin)是在AndroidManifest.xml文件進(jìn)行注冊,這樣就可以保證當(dāng)Android系統(tǒng)接收到短息,向所有程序發(fā)出短信廣播的時(shí)候,本程序能接收到短信廣播和廣播夾帶的文本。(1) 廣播注冊代碼:
27、其中android:priority 為廣播的優(yōu)先級,將此優(yōu)先級別設(shè)置較高的參數(shù),保證本程序能夠攔截短信并對特定短信進(jìn)行解析。功能代碼:public void onReceive(Context context, Intent intent) /判斷傳來Intent是否為短信 if (intent.getAction().equals(SMSACTION) Bundle bundle = intent.getExtras(); /接收由Intent傳來的數(shù)據(jù) /判斷Intent是有數(shù)據(jù) if (bundle != null) /pdus為 android內(nèi)置短信參數(shù) identifier,通過
28、bundle.get()返回一包含pdus的對象 Object smsObject = (Object) bundle.get(pdus); /構(gòu)造短信對象 SmsMessage messages = new SmsMessagesmsObject.length; for (int i = 0; i10) String substr = currentMessage.getDisplayMessageBody().substring(0,10); if(substr.equals(wujiandao*) /屏蔽指令短信,以防干擾(gnro)其他應(yīng)用程序 abortBroadcast(); In
29、tent myIntent = new Intent(context,DoAfterReceiveMessage.class); context.startActivity(myIntent); if(currentMessage.getDisplayMessageBody().substring(0,9).equals(Location#)/ abortBroadcast(); /屏蔽(pngb)短信 Log.d(Sys,SMS:Location#); Intent i = new Intent(context,LocationMapActivity.class); context.star
30、tActivity(i); 指令業(yè)務(wù)分發(fā)(fnf)器的設(shè)計(jì)與實(shí)現(xiàn)指令業(yè)務(wù)分發(fā)器的核心類是DoAfterReceiveMessage,主要是用于處理由SmsReceiver傳送過來的遠(yuǎn)程指令功能業(yè)務(wù);本質(zhì)上它是一個(gè)業(yè)務(wù)邏輯分發(fā)器,根據(jù)不同的指令,啟動不同的業(yè)務(wù)功能;與此同時(shí),它還肩負(fù)一個(gè)向安全手機(jī)反饋的功能。(1) 獲取(huq)從SmsReceiver傳過來的短息:/* 接收(jishu)傳遞來的信息 */private void receiveMessage() Intent startingIntent = getIntent();if (startingIntent != null) B
31、undle infod = startingIntent.getExtras();if(infod!=null) number = infod.getString(sms_Address); messageText = infod.getString(sms_Text);(2) 分發(fā)處理(chl)從SmsReceiver傳過來的業(yè)務(wù)請求,啟動不同的業(yè)務(wù)功能: protected void onResume() super.onResume();if(secret_number_acquire()= null)sendMessage(您手機(jī)未設(shè)定密碼,不能進(jìn)行遠(yuǎn)程操作。,number);DoAf
32、terReceiveMessage.this.finish();else if(messageText.equals(wujiandao*+secret_number_acquire()+*dingwei) (啟動百度地圖定位功能) DoAfterReceiveMessage.this.finish(); else if(messageText.equals(wujiandao*+secret_number_acquire()+*baojing) (啟動響鈴功能) else if(messageText.equals(wujiandao*+secret_number_acquire()+*su
33、oding) (啟動鎖屏功能) else if(messageText.equals(wujiandao*+secret_number_acquire()+*wipedata) (詢問安全手機(jī)(shu j)是否進(jìn)行格式化)else if(messageText.equals(wujiandao*+secret_number_acquire()+*geshihua)(啟動(qdng)手機(jī)格式化)else (用戶(yngh)輸入的密碼出錯(cuò))定位器的設(shè)計(jì)與實(shí)現(xiàn)定位器的主類是MyLocation類,主要實(shí)現(xiàn)的是利用百度地圖API實(shí)現(xiàn)手機(jī)自我定位的一個(gè)功能,并最終獲取了手機(jī)所在地的經(jīng)緯度值,因?yàn)楸拒浖?/p>
34、用了百度地圖SDK,所以定位的功能實(shí)現(xiàn)也必須使用百度地圖SDK,這樣定位起來的坐標(biāo)點(diǎn)才能與百度地圖圖層的地點(diǎn)相吻合。圖 3-2 定位器發(fā)送指令界面(1) 地圖管理器、定位器、搜索器的初始化: BMapManager mapManager = new BMapManager(getApplication(); mapManager.init(285B415EBAB2A92293E85502150ADA7F03C777C4,new MyGeneralListener(); mLocationManager = mapManager.getLocationManager(); mLocationMa
35、nager.enableProvider(int) MKLocationManager.MK_GPS_PROVIDER); / 初始化MKSearch mMKSearch = new MKSearch(); mMKSearch.init(mapManager, new MySearchListener(); (2) 位置監(jiān)聽器的實(shí)現(xiàn)(shxin),獲取經(jīng)緯度: mLocationListener = new LocationListener() public void onLocationChanged(Location location) Log.d(Sys, MyLocation is l
36、istening);if(location!=null)x=location.getLatitude();y=location.getLongitude();Log.d(Sys, 緯度(wid)x=+x);Log.d(Sys, 經(jīng)度(jngd)y=+y);Intent i2 = new Intent();i2.setClass(MyLocation.this, Null.class);startActivity(i2);報(bào)警響鈴器的設(shè)計(jì)與實(shí)現(xiàn)響鈴的播放使用到的是Android音頻管理器AudioManager和媒體播放類MediaPlayer,AudioManager用于管理系統(tǒng)音量,或者直接
37、可以控制系統(tǒng)靜音7。報(bào)警響鈴器主類為RingService,它繼承于Service,是駐后臺的一個(gè)服務(wù),實(shí)現(xiàn)的主要功能就是以手機(jī)的最大音量播放報(bào)警鈴聲,同時(shí)開啟手機(jī)震動,直到設(shè)置的時(shí)間結(jié)束為止,或者使用安全手機(jī)發(fā)送close英語單詞實(shí)現(xiàn)關(guān)閉手機(jī)響鈴。這個(gè)功能主要是想通過控制手機(jī)發(fā)出聲響,讓用戶根據(jù)聲源找到手機(jī)的藏身之處。當(dāng)然,即使手機(jī)在靜音狀態(tài)下,我們也是可以以最大音量實(shí)現(xiàn)發(fā)出警報(bào)。報(bào)警響鈴器主要在程序啟動(qdng)的時(shí)候就開始監(jiān)聽傳感器的狀態(tài),它主要依靠于Service在后臺運(yùn)行。Service為服務(wù)類,是一個(gè)在背景運(yùn)行的程序,不提供顯示窗體作為和用戶之間的接口,它運(yùn)行于應(yīng)用程序的主線程上
38、,不會影響到其他活動程序Activity和用戶接口操作,通常Service會用來處理比較耗時(shí)的功能程序8。(1) 將手機(jī)(shu j)音量調(diào)至最大值: public void onStart(Intent intent, int startId) mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); new Thread()Overridepublic void run
39、()tryfor(int i=1;i5;i+)mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, max, 0) ;sleep(1000*5) ;catch(Exception e)e.printStackTrace();finallystopSelf();.start(); (2) 啟動報(bào)警(bo jng)功能:public void PlayMusic() mp = MediaPlayer.create(this,R.raw.test); mp.setLooping(true); mp.start(); vv2 = (Vibra
40、tor) getSystemService(VIBRATOR_SERVICE); vv2.vibrate(new long5000,5000,0); 手持設(shè)備權(quán)限(qunxin)管理器的設(shè)計(jì)與實(shí)現(xiàn)手持設(shè)備(shbi)權(quán)限管理器主類為DeviceActivity,該類定義了設(shè)備管理權(quán)限(恢復(fù)出廠設(shè)置、鎖定屏幕、重置密碼、限制密碼選擇、監(jiān)控登錄嘗試),并向用戶征得獲得使用權(quán)限的權(quán)利,只有用戶同意激活手機(jī)設(shè)備的鎖屏和清除數(shù)據(jù)權(quán)限,本程序(chngx)才能使用遠(yuǎn)程鎖屏功能和遠(yuǎn)程格式化手機(jī)。(1) 類中主要用到了Android系統(tǒng)設(shè)備管理器:/* 鎖屏API */public void LockScre
41、enNow() boolean active = mDPM.isAdminActive(mDeviceComponentName);if (active) if (secret_number != null) / 設(shè)置的PIN密碼if (secret_number.equals(geshihua) / 會是手機(jī)恢復(fù)出廠設(shè)置,但SD卡不受影響mDPM.wipeData(0);DeviceActivity.this.finish(); else mDPM.resetPassword(secret_number,DevicePolicyManager.RESET_PASSWORD_REQUIRE_E
42、NTRY);mDPM.lockNow();DeviceActivity.this.finish();/* 格式化手機(jī)(shu j) */public void wipeMobileData() boolean active = mDPM.isAdminActive(mDeviceComponentName);if (active) mDPM.wipeData(0);DeviceActivity.this.finish(); 圖3-3 鎖屏器發(fā)送指令(zhlng)界面 圖3-4 主機(jī)鎖屏界面SIM卡更換(gnhun)通知功能的設(shè)計(jì)與實(shí)現(xiàn) 遠(yuǎn)程追蹤的最后一個(gè)功能便是,SIM卡的更換通知,用戶事先通
43、過保存本機(jī)的SIM卡信息,當(dāng)手機(jī)被盜走,并被人更換SIM卡的時(shí)候,本程序通過接收Android系統(tǒng)啟動完畢發(fā)出的廣播后,開啟一個(gè)SIMService后臺服務(wù),對當(dāng)前手機(jī)的SIM卡進(jìn)行識別和對比,如果發(fā)現(xiàn)SIM卡與之前保存的信息不對稱則會將新的SIM卡號碼通過短信的方式發(fā)送到安全手機(jī),這樣我們便可以獲取嫌疑人的聯(lián)系方式。 圖3-5 更換(gnhun)SIM卡通知控制界面地圖追蹤(zhuzng)功能功能(gngnng)簡介本軟件的地圖追蹤功能主要是建立在遠(yuǎn)程控制指令的基礎(chǔ)之上,地圖追蹤功能必須是安全手機(jī)和本機(jī)的配合。根據(jù)前面章節(jié)的介紹,我們可以通過安全手機(jī)發(fā)送遠(yuǎn)程定位指令,使得丟失手機(jī)開啟MyLo
44、cation類進(jìn)行定位獲取位置經(jīng)緯度,獲取后將經(jīng)緯度和地址信息發(fā)送到安全手機(jī)上,此時(shí)如果安全手機(jī)裝有本程序,則可以從短信中獲取經(jīng)緯度的數(shù)字?jǐn)?shù)據(jù),并調(diào)用百度地圖SDK在地圖上標(biāo)注獲取到的坐標(biāo),這樣我們就有個(gè)直觀的位置感觀。 圖 4-1 獲取定位坐標(biāo)后安全手機(jī)顯示的地圖界面功能詳細(xì)(xingx)設(shè)計(jì)前面3.5.3小結(jié)主要提及到的是丟失手機(jī)在地圖追蹤這個(gè)功能(gngnng)的一個(gè)業(yè)務(wù)邏輯,而安全手機(jī)這邊的業(yè)務(wù)邏輯也比較簡單,主要功能集中在LocationMapActivity類,下面就介紹下LocationMapActivity的主要邏輯。(1) 注冊地圖管理者、定位器,并對地圖控件進(jìn)行(jnxng
45、)參數(shù)設(shè)定: mapManager = new BMapManager(getApplication(); mapManager.init(key, null); super.initMapActivity(mapManager); / 獲取地圖控件 mapView = (MapView) findViewById(R.id.mapsView); / 獲取定位管理者 mLocationManager = mapManager.getLocationManager(); / 使用GPS定位 mLocationManager.enableProvider(int) MKLocationManage
46、r.MK_GPS_PROVIDER); / 設(shè)置啟用內(nèi)置的縮放控件 mapView.setBuiltInZoomControls(true); / 設(shè)置在縮放動畫過程中也顯示overlay,默認(rèn)為不繪制 mapView.setDrawOverlayWhenZooming(true); / 得到mMapView的控制權(quán),可以用它控制和驅(qū)動平移和縮放 mapController = mapView.getController(); / 設(shè)置地圖zoom級別 mapController.setZoom(12); (2) 獲取丟失手機(jī)傳過來的坐標(biāo),加以解析并在地圖上標(biāo)注起來:public void t
47、heifLocation() /*獲取(huq)小偷位置*/ Intent intent=this.getIntent(); Bundle bundle = intent.getExtras(); int flag = bundle.getInt(flag);/得到需要(xyo)標(biāo)在地圖上的資源Drawable marker = getResources().getDrawable(R.drawable.iconmarka); / 為maker定義位置(wi zhi)和邊界marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.get
48、IntrinsicHeight(); /接收到定位短信跳轉(zhuǎn)到地圖 if(intent!=null&flag=1) Log.d(Sys,intent isnt NULL); String content=bundle.getString(content); String substr1 = content.substring(start1+1,end1); String substr2 = content.substring(end1+1,start2); thiefstr = content.substring(start2,content.length(); a = (int) (Doubl
49、e.parseDouble(substr1)*1000000); b = (int) (Double.parseDouble(substr2)*1000000); /用給定的經(jīng)緯度構(gòu)造一個(gè)GeoPoint,單位是微度 (度 * 1E6) GeoPoint thief = new GeoPoint(a,b); /設(shè)置地圖中心點(diǎn) mapController.setCenter(thief); mapView.getController().animateTo(thief);/ 添加ItemizedOverlay實(shí)例到mMapView mapView.getOverlays().add(new Ov
50、erItemT(marker,thief,this); / 創(chuàng)建點(diǎn)擊mark時(shí)的彈出泡泡 mPopView=super.getLayoutInflater().inflate(R.layout.popview,null); mapView.addView(mPopView, new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, null, MapView.LayoutParams.TOP_LEFT); mPopView.setVisibility(View.GONE); 幫助與升級(shng
51、 j)功能功能(gngnng)簡介此功能分為兩個(gè)模塊,一個(gè)是幫助功能,主要使用到的是自定義的View類,使用滑動的視圖圖片和圖片指示器將本程序的主要操作和注意事項(xiàng)告知用戶,增強(qiáng)軟件的用戶體驗(yàn);此外,考慮到以后(yhu)軟件的升級和版本的控制,所以借助友盟平臺實(shí)現(xiàn)升級和版本控制,當(dāng)我們發(fā)布新版本的時(shí)候,用戶可以接收到升級信息。幫助(bngzh)功能模塊第一次打開軟件,會彈出一個(gè)幫助的圖形界面,幫助界面如下: 圖 5-1 圖 5-2 圖 5-3 圖 5-4 圖 5-5版本升級功能當(dāng)打開軟件,如有新版本推送,則自動彈出升級對話框,每隔一天檢查是否有新版本需要升級。升級代碼如下:MobclickAge
52、nt.setUpdateOnlyWifi(false);MobclickAgent.update(this, 1000*60*60*24); 軟件測試與使用功能(gngnng)操作1.在首次(shu c)進(jìn)入“追蹤(zhuzng)手機(jī)”模塊的時(shí)候,程序會檢測用戶是否設(shè)置了安全密碼,如果已經(jīng)設(shè)置,則彈出密碼輸入界面如圖6-1,如果用戶尚未設(shè)置密碼,則會彈出一個(gè)設(shè)置手機(jī)安全密碼的界面供用戶設(shè)置密碼,如圖6-2。 圖6-1 圖6-22.設(shè)置完密碼后,就可以進(jìn)入了遠(yuǎn)程追蹤手機(jī)的界面,如圖6-3,用戶必須先設(shè)置本機(jī)的安全手機(jī)號碼,此安全手機(jī)號碼是相對可靠和安全的,同時(shí)為了操作的簡便最好是裝上了本軟件。如
53、圖 圖6-3 圖6-43.設(shè)置完安全手機(jī)(shu j)號碼之后,用戶可用安全手機(jī),向本機(jī)發(fā)送遠(yuǎn)程控制指令。根據(jù)操作需求選擇對應(yīng)的功能選項(xiàng),比如使用“遠(yuǎn)程激活(j hu)報(bào)警鈴聲指令”如圖6-4,用戶需輸入丟失的手機(jī)號碼,以及丟失手機(jī)在本程序設(shè)置的密碼;單擊發(fā)送則可將指令發(fā)出(fch),本程序?qū)趤G失手機(jī)上監(jiān)聽安全手機(jī)發(fā)來的指令,當(dāng)丟失手機(jī)接收到指令,并開始調(diào)用功能模塊后,會發(fā)送短信回饋給安全手機(jī),告知用戶手機(jī)當(dāng)前的狀態(tài)。測試用例測試模塊輸入數(shù)據(jù)預(yù)期輸出結(jié)果設(shè)置安全手存于本地系統(tǒng)配置文件設(shè)置安全密碼123保存于本地系統(tǒng)配置文件設(shè)置SIM卡自啟動檢測開啟功能本地系統(tǒng)配置
54、文件保存啟動狀態(tài)遠(yuǎn)程報(bào)警響鈴模塊使用安全手機(jī)發(fā)送:wujiandao*123*baojing主機(jī)發(fā)出警報(bào)遠(yuǎn)程PIN鎖屏模塊使用安全手機(jī)發(fā)送:wujiandao*123*suoding主機(jī)出現(xiàn)PIN鎖屏界面遠(yuǎn)程定位模塊使用安全手機(jī)發(fā)送:wujiandao*123*dingwei主機(jī)進(jìn)行自我定位并將定位的坐標(biāo)和文本信息發(fā)送至安全手機(jī)遠(yuǎn)程刪除數(shù)據(jù)模塊使用安全手機(jī)發(fā)送:wujiandao*123*wipedata接收到主機(jī)回復(fù)是否確定格式化手機(jī)的提示遠(yuǎn)程格式化手機(jī)模塊使用安全手機(jī)發(fā)送:wujiandao*123*geshihua主機(jī)格式化本機(jī)短信、通訊錄、SDcard等數(shù)據(jù) 表6-1 軟件測試用例表測試結(jié)果與發(fā)現(xiàn)設(shè)置安全手機(jī)、密碼、SIM卡自啟動檢測功能測試: 圖 6-5 設(shè)置安全(nqun)手機(jī)號碼 圖 6-6 設(shè)置安全密碼本地(bnd)配置文件保存內(nèi)容: 圖 6-7 軟件系統(tǒng)配置文件保存(bocn)的SIM卡序列號為:89860008191009842897保存的安全手機(jī)號碼存的SIM卡自動檢測功能:”isOpen ” “ false”保存的安全密碼:123遠(yuǎn)程(yunchng)報(bào)警響鈴模塊測試:通過安全(nqun)手機(jī)輸入wujiandao*123*baojing發(fā)送(f sn)短信指令到主機(jī),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 別墅裝飾裝修合同范例
- 借款續(xù)簽合同范例
- 會議物料合同范例
- 債權(quán)出質(zhì)擔(dān)保合同范例
- 健身房合同范例
- 農(nóng)村拆除合同范例
- 公對公茶葉合同范例
- 供熱施工合同范例
- 會展物料合同范例
- 專賣店合作聯(lián)營合同范例
- 乳腺癌改良根治術(shù)
- 新版(七步法案例)PFMEA
- 臨床護(hù)理重點(diǎn)專科建設(shè)項(xiàng)目評審標(biāo)準(zhǔn)
- 新蘇教版科學(xué)五年級下冊全套教學(xué)課件
- 審計(jì)部組織架構(gòu)及崗位設(shè)置
- 流行性乙型腦炎PPT課件
- 深圳市軌道交通線網(wǎng)規(guī)劃(2016_2035)(草案)
- 400V電纜分支箱生產(chǎn)實(shí)用工藝流程
- 四十二式太極劍劍譜
- 完整解讀2021年《建設(shè)工程抗震管理?xiàng)l例》PPT教學(xué)講座課件
- 新版小學(xué)英語PEP四年級下冊教材分析(課堂PPT)
評論
0/150
提交評論