畢業(yè)論文-基于Android平臺的“無間盜”防盜軟件-地圖追蹤及遠程指令_第1頁
畢業(yè)論文-基于Android平臺的“無間盜”防盜軟件-地圖追蹤及遠程指令_第2頁
畢業(yè)論文-基于Android平臺的“無間盜”防盜軟件-地圖追蹤及遠程指令_第3頁
畢業(yè)論文-基于Android平臺的“無間盜”防盜軟件-地圖追蹤及遠程指令_第4頁
畢業(yè)論文-基于Android平臺的“無間盜”防盜軟件-地圖追蹤及遠程指令_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE本科畢業(yè)設(shè)計題目:基于Android平臺的“無間盜”防盜軟件——地圖追蹤及遠程指令學(xué)生姓名:學(xué)號:系別:專業(yè)班級指導(dǎo)教師姓名及職稱:起止時間:摘要:隨著Android系統(tǒng)的發(fā)展和智能手機逐漸平民化,其普及率呈指數(shù)增長。Android手機市場規(guī)模的擴大所引起的手機安全和防盜的問題也愈發(fā)突出。本論文在基于Andorid平臺上,運用Android短信、廣播等通信機制,配合第三方地圖服務(wù)商提供的地圖API對智能手機進行遠程指令控制和定位丟失的手機,為找到手機增加可能性,并保護失主隱私。關(guān)鍵詞:遠程指令追蹤;Android防盜;百度地圖;Android廣播

Abstract:WiththeincreasingpopularityofAndroidsystemdevelopmentandsmartphones.TheAndroidphoneexpansionofmarketscaleofmobilesecurityandanti-theftproblemsbecomemoreprominent.ThisthesisisbasedonAndoridplatform,useAndroidSMS,broadcastingandothercommunicationmechanisms,withtheMapsAPIprovidedbyathird-partymapserviceprovidersmartphoneremotecommandcontrolandpositioninglostphone,toincreasethepossibilitytofindthephone,andtheprotectionoftheownerprivacy.Keywords:Theremotecommandtracking;Androidanti-theft;Baidumap;AndroidbroadcastPAGEII目錄249811.緒論 1285581.1.研究意義與背景 1111741.2.課題的目的及其意義 137781.3.本文的主要研究工作 17512.Android百度地圖API 2253042.1.手機地圖服務(wù) 238402.2.定位技術(shù) 2254202.2.1.基于GSM蜂窩基站定位 2263192.2.2.基于GPS衛(wèi)星定位 2314882.2.3.基于WIFI熱點定位 3170052.3.百度地圖API簡介 3326603.遠程指令控制功能 5285543.1.基本原理及設(shè)計 5174973.2.底層平臺導(dǎo)入和開發(fā)步驟 6181833.2.1.申請密鑰 6118063.2.2.導(dǎo)入.jar和.so文件 651553.2.3.初始化聲明 656723.3.模塊框架圖 787123.4.模塊詳細設(shè)計 8322703.4.1.指令接收器的設(shè)計與實現(xiàn) 827513.4.2.指令業(yè)務(wù)分發(fā)器的設(shè)計與實現(xiàn) 9254243.4.3.定位器的設(shè)計與實現(xiàn) 11314523.4.4.報警響鈴器的設(shè)計與實現(xiàn) 12145713.4.5.手持設(shè)備權(quán)限管理器的設(shè)計與實現(xiàn) 14305533.4.6.SIM卡更換通知功能的設(shè)計與實現(xiàn) 15323034.地圖追蹤功能 16244434.1.功能簡介 16260194.2.功能詳細設(shè)計 16293675.幫助與升級功能 19214435.1.功能簡介 1989495.2.幫助功能模塊 19319515.3.版本升級功能 19321576.軟件測試與使用 20251056.1.功能操作 2026386.2.測試用例 21128576.3.測試結(jié)果與發(fā)現(xiàn) 21133767.總結(jié) 2528103參考文獻 2615245致謝 26PAGE28緒論研究意義與背景隨著智能移動終端發(fā)展和普及,人們試圖讓交互的應(yīng)用伴隨移動的用戶在對應(yīng)的空間中遷移。從全球的發(fā)展趨勢來看,更高水平的基于位置服務(wù)(LBS)、基于空間定位等功能是新一代移動網(wǎng)絡(luò)應(yīng)該具備的,是網(wǎng)絡(luò)業(yè)務(wù)支撐能力的一種體現(xiàn),我國移動運營商更已將其視為形象工程。LBS依賴于高精度定位技術(shù)的發(fā)展,隨著定位技術(shù)的發(fā)展和人們網(wǎng)絡(luò)社交心理、行為的成熟;LBS將更加實用化,所衍生出的服務(wù)和產(chǎn)業(yè)鏈將更加豐富和廣闊,為用戶提供隨時隨身的服務(wù)。課題的目的及其意義基于地圖位置服務(wù)發(fā)展迅速,對人機界面與地理信息系統(tǒng)服務(wù)整合具有重要的理論和現(xiàn)實意義。本課題在此基礎(chǔ)上利用Androidd的短信通信機制、廣播機制以及第三方地圖軟件提供商的API,實現(xiàn)并研究手機防盜在移動技術(shù)上的新應(yīng)用。將手機防盜技術(shù)應(yīng)用于日常生活之中,對降低手機及其資料被盜的風(fēng)險和減少個人的財產(chǎn)損失有著重大意義和應(yīng)用價值。通過此課題,能夠培養(yǎng)學(xué)生動手能力,增強個人思維模式,鍛煉軟件開發(fā)中遇到問題的調(diào)試能力,進而加強專業(yè)技術(shù)。本文的主要研究工作本文主要研究的是基于Android系統(tǒng)短信通知機制的遠程追蹤控制指令,以及第三方地圖API的使用,通過兩者的配合和應(yīng)用來鞏固手機防盜的防線。

Android百度地圖API手機地圖服務(wù)手機地圖服務(wù)是指在手機上利用GPS或者網(wǎng)絡(luò)實現(xiàn)精確定位,通過使用WAP方式或客戶端方式,得到相關(guān)位置信息的業(yè)務(wù)。為用戶提供了一種便捷實用的掌上地圖,通過手機屏幕,用戶可以查詢城市信息、查找自己的位置、查找道路信息。它以矢量地圖、衛(wèi)星地圖、混合地圖3種服務(wù)模式向全球提供地圖搜索和逐級縮放功能的地圖服務(wù),讓全球用戶體驗到了新的地圖服務(wù)模式。目前,主流的地圖服務(wù)在國外有GoogleMaps,Yahoo地圖服務(wù),VirtualEarth服務(wù)三大服務(wù),而國內(nèi)則有搜狐旗下的搜狗、百度、高德等主要的地圖服務(wù)。本軟件之所以選用百度地圖服務(wù)是因為其功能與國外地圖相比更具本地特色,也更加實用,其位置相對與國內(nèi)而言也更為精準。定位技術(shù)移動終端的定位是通過檢測移動終端和基站之間傳播信號的特征參數(shù)來獲得其幾何位置,在顯示應(yīng)用中,主要有三種常用的定位方式:基于GSM蜂窩基站定位把移動電話的服務(wù)區(qū)別分為一個個正六邊形的子區(qū),每個小區(qū)設(shè)一個基站。形成了形狀酷似“蜂窩”的結(jié)構(gòu)[1],移動電話測量不同基站的下行導(dǎo)頻信號,得到不同基站下行導(dǎo)頻的TOA(TimeofArrival,到達時刻)或TDOA(TimeDifferenceofArrivalm,到達時間差),根據(jù)該測量結(jié)果并結(jié)合基站的坐標,一般采用三角公式估計算法,就能夠計算出移動電話的位置。實際的位置估計算法需要考慮多基站(3個或3個以上)定位的情況,因此算法要復(fù)雜很多。一般而言,移動臺測量的基站數(shù)目越多,測量精度越高,定位性能改善越明顯?;贕PS衛(wèi)星定位GPS的空間部分是由24顆衛(wèi)星組成(其中有21顆工作衛(wèi)星,3顆備用衛(wèi)星)。在空曠地帶且無阻擋的前提下,GPS定位技術(shù)的定位精度可達15米左右。但是,在很多情況下,GPS接收機不能夠捕獲足夠多的GPS衛(wèi)星信號,定位精度將會大大的降低,甚至不能定位(如室內(nèi))。GPS系統(tǒng)主要由三大部分組成:GPS衛(wèi)星星座(空間部分)、地面監(jiān)控系統(tǒng)(控制部分)和GPS信號接收機(用戶部分)。GPS的定位原理就是根據(jù)高速運動的衛(wèi)星瞬間位置作為已知的數(shù)據(jù),采用空間距離后方交會的方法,確定待測點的位置[2]。我們通常所說的GPS往往僅只用戶設(shè)備部分,它通過接受天空不同位置的三顆以上的衛(wèi)星信號,手機捕獲到跟蹤的衛(wèi)星信號后,配合地面接收天線就可按定位解算方法進行定位計算,計算出用戶所在地理位置的經(jīng)緯度、高度、速度、時間等信息。簡單來說是利用了數(shù)學(xué)上三條線確定一個空間點的原理。雖然GPS定位最為精準,但其缺點是耗電、定位慢并且無法室內(nèi)定位?;赪IFI熱點定位基于WIFI熱點定位的原理跟GSM基站定位的原理差不多,前提是我們必須拿到WIFI路由器的SSID和信號強度。當(dāng)然,我們并不需要真正連接上指定的WIFI路由器,只需要探測到有WIFI存在即可。定位端只要偵聽一下附近都有哪些熱點,檢測一下每個熱點的信號強弱,然后把這些信息發(fā)送給Skyhook的服務(wù)器。服務(wù)器根據(jù)這些信息,查詢每個熱點在數(shù)據(jù)庫里記錄的坐標,進行運算,就能知道客戶端的具體位置了,再把坐標告訴客戶端??梢韵胂?,只要收到的AP信號越多,定位就會越準。百度地圖API簡介百度地圖移動版API(Android)是一套基于Android1.5及以上設(shè)備的應(yīng)用程序接口,通過該接口,您可以輕松訪問百度服務(wù)和數(shù)據(jù),構(gòu)建功能豐富、交互性強的地圖應(yīng)用程序[3]。百度地圖移動版API不僅包含構(gòu)建地圖的基本接口,還提供了諸如地圖定位、本地搜索、路線規(guī)劃等數(shù)據(jù)服務(wù),你可以根據(jù)自己的需要進行選擇。百度地圖API將復(fù)雜的底層邏輯進行封裝,以一種便于開發(fā)者理解的方式提供。開發(fā)者只需要按照API文檔的要求進行注冊即可使用,客戶端不需要安裝任何軟件、控件或地圖,所有運算都會在百度公司的服務(wù)器中運行,由API進行組織顯示、分級縮放和漫游。使用者只需要通過其API,利用Android開發(fā)包就可以將百度地圖服務(wù)應(yīng)用到自己的軟件中。其中客戶端主要完成地圖的加載、地圖瀏覽和查詢功能,它的設(shè)計重點是地圖瀏覽和查詢界面,以及將用戶的訪問和查詢請求打包發(fā)送給服務(wù)器[9]。應(yīng)用服務(wù)器方面則負責(zé)處理用戶的訪問和查詢請求,數(shù)據(jù)服務(wù)器則用于存取各類空間數(shù)據(jù)和屬性信息,采用SQLServer數(shù)據(jù)庫存取表格,并在接到Query查詢指令后執(zhí)行相應(yīng)的操作[9]。系統(tǒng)體系結(jié)構(gòu)如運行如下圖所示。圖2-1地圖服務(wù)原理圖

遠程指令控制功能基本原理及設(shè)計本軟件的遠程指令控制功能本質(zhì)上是使用了Android系統(tǒng)的短信收發(fā)和系統(tǒng)的廣播機制再加上自編的指令編碼實現(xiàn)對丟失手機的功能控制,我們把它定義為本軟件的第二道防線?;谶@道防線,我們可以通過安全手機向丟失的手機進行遠程控制響鈴、PIN碼鎖屏、遠程定位、獲取新SIM卡號碼和格式化丟失手機SD卡等功能。首先,需要為主機設(shè)置安全密碼和一個安全手機號碼,并對這兩個數(shù)據(jù)保存到系統(tǒng)的配置文件。在這里使用到的是Android數(shù)據(jù)持久化的一種做法:SharePreference:SharePreference用來存儲和檢索一些關(guān)鍵變量的內(nèi)容,這些內(nèi)容常駐于手機xml文件之中,它是使用鍵值對的方式來存取文件中的數(shù)據(jù)的[4]。Android提供了一個SmsManager.class讓應(yīng)用程序擁有完整的權(quán)限來進入SMS短信的管理,自從Android1.5版本之后,SmsManager信息管理器可以支持GSM和CDMA的移動手機通信標準。[5]發(fā)送一條SMS信息對Android系統(tǒng)來說有相當(dāng)規(guī)范的步驟:(1)在AndroidMainifest.xml文件中聲明權(quán)限:<uses-permissionandroid:name="android.permission.WRITE_SMS"/><uses-permissionandroid:name="android.permission.READ_SMS"/>(2)使用SmsManager.getDefault()靜態(tài)方法,獲取SmsManger的實例:SmsManagermySms=SmsManager.getDefault();(3)定義一個目標號碼和發(fā)送文本,使用sendTextMessage()方法發(fā)送SMS信息到另一個Android設(shè)備:Stringdestination="123456789";Stringmsg="Sendingmyfirstmessage";mySMS.sendTextMessage(destination,null,msg,null,null);在Android系統(tǒng)中有一個很重要的組件,那就是廣播BroadcastReceiver,廣播接收器組件用于接收和響應(yīng)系統(tǒng)廣播的消息。廣播接收器也需要通過Activity與用戶交互進行橋接[6]。Android系統(tǒng)在手機收到運營商的短信后,會向手機每個應(yīng)用程序發(fā)送短信廣播,通知所有應(yīng)用程序此時此刻系統(tǒng)有短信接收,只要在程序中注冊短信廣播接收器,我們就可以在程序中分析短信文本。實現(xiàn)具體的操作和功能實現(xiàn)。系統(tǒng)的短息廣播標志為:vider.Telephony.SMS_RECEIVED。本軟件的遠程指令控制需要建立一套用于安全手機和被盜手機相互識別的指令集,在軟件中指令集的定義如下:發(fā)送定位丟失手機指令:(wujiandao*密碼*dingwei)發(fā)送激活報警鈴聲指令:(wujiandao*密碼*baojing)發(fā)送設(shè)定屏保密碼指令:(wujiandao*密碼*suoding)發(fā)送格式化請求指令:(wujiandao*密碼*wipedata)發(fā)送確定格式化指令:(wujiandao*密碼*geshihua)獲取丟失手機坐標指令:(Location#緯度#經(jīng)度*地址*)根據(jù)以上的指令集,在程序中開啟一個后臺服務(wù),在服務(wù)中注冊短信廣播接收器,這里需要把廣播接收器的權(quán)限提至最高,保證一旦接收到系統(tǒng)的短信可以最先過濾和分析這些指令;一旦確定是以上指令集的內(nèi)容,則將指令解析并銷毀短信廣播,保證不影響其他應(yīng)用程序的正常工作。底層平臺導(dǎo)入和開發(fā)步驟申請密鑰百度地圖SDK提供的服務(wù)是免費的,接口無使用次數(shù)限制。我們首先要需先申請密鑰(key),才可使用該套SDK。任何非營利性程序請直接使用,商業(yè)使用必須請參考使用須知。/map/android-mobile-apply-key.htm通過這個網(wǎng)站同意與百度的協(xié)議,我們就可以獲得密鑰。導(dǎo)入.jar和.so文件在項目Libraries里添加baidumapapi.jar,將libBMapApiEngine_v1_3_5.so復(fù)制到工程目錄下的libs\armeabi。初始化聲明地圖、定位、搜索功能都需要BMapManager來管理,BMapManager提供四個接口,init,start,stop,destroy。建議在Application里生成BMapManager對象并初始化,在程序退出時調(diào)用destory,在需要使用sdk功能的Activity的onCreate里調(diào)用start,onDestroy調(diào)用stop,或者onResume/onPause分別調(diào)用start和stop[1]。模塊框架圖圖3-1遠程追蹤指令模塊流程圖模塊詳細設(shè)計指令接收器的設(shè)計與實現(xiàn)指令接收器的核心類是SmsReceiver,該類是自定義的廣播接收器,繼承Android中的BroastReceiver,是程序遠程控制指令的核心類,主要用于接收和解析收到的指令短信,對非指令短信進行過濾;此類的使用首先是在AndroidManifest.xml文件進行注冊,這樣就可以保證當(dāng)Android系統(tǒng)接收到短息,向所有程序發(fā)出短信廣播的時候,本程序能接收到短信廣播和廣播夾帶的文本。(1)廣播注冊代碼:<receiverandroid:name=".baojing.SmsReceiver"><intent-filterandroid:priority="2147483647"><actionandroid:name="vider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>其中android:priority為廣播的優(yōu)先級,將此優(yōu)先級別設(shè)置較高的參數(shù),保證本程序能夠攔截短信并對特定短信進行解析。功能代碼:publicvoidonReceive(Contextcontext,Intentintent){ //判斷傳來Intent是否為短信 if(intent.getAction().equals(SMSACTION)){ Bundlebundle=intent.getExtras();//接收由Intent傳來的數(shù)據(jù) //判斷Intent是有數(shù)據(jù) if(bundle!=null){ //pdus為android內(nèi)置短信參數(shù)identifier,通過bundle.get("")返回一包含pdus的對象 Object[]smsObject=(Object[])bundle.get("pdus"); //構(gòu)造短信對象 SmsMessage[]messages=newSmsMessage[smsObject.length]; for(inti=0;i<smsObject.length;i++){ messages[i]=SmsMessage.createFromPdu((byte[])smsObject[i]); } for(SmsMessagecurrentMessage:messages){ if(currentMessage.getDisplayMessageBody().length()>10){ Stringsubstr=currentMessage.getDisplayMessageBody().substring(0,10); if(substr.equals("wujiandao*")){ //屏蔽指令短信,以防干擾其他應(yīng)用程序 abortBroadcast(); IntentmyIntent=newIntent(context,DoAfterReceiveMessage.class); context.startActivity(myIntent); } if(currentMessage.getDisplayMessageBody().substring(0,9).equals("Location#")){// abortBroadcast();//屏蔽短信 Log.d("Sys","SMS:Location#"); Intenti=newIntent(context,LocationMapActivity.class); context.startActivity(i); }}}}}}指令業(yè)務(wù)分發(fā)器的設(shè)計與實現(xiàn)指令業(yè)務(wù)分發(fā)器的核心類是DoAfterReceiveMessage,主要是用于處理由SmsReceiver傳送過來的遠程指令功能業(yè)務(wù);本質(zhì)上它是一個業(yè)務(wù)邏輯分發(fā)器,根據(jù)不同的指令,啟動不同的業(yè)務(wù)功能;與此同時,它還肩負一個向安全手機反饋的功能。(1)獲取從SmsReceiver傳過來的短息: /*接收傳遞來的信息*/ privatevoidreceiveMessage(){ IntentstartingIntent=getIntent(); if(startingIntent!=null){ Bundleinfod=startingIntent.getExtras(); if(infod!=null){ number=infod.getString("sms_Address"); messageText=infod.getString("sms_Text"); } } }(2)分發(fā)處理從SmsReceiver傳過來的業(yè)務(wù)請求,啟動不同的業(yè)務(wù)功能: protectedvoidonResume(){ super.onResume(); if(secret_number_acquire()==null){ sendMessage("您手機未設(shè)定密碼,不能進行遠程操作。",number); DoAfterReceiveMessage.this.finish(); }elseif(messageText.equals("wujiandao*"+secret_number_acquire()+"*dingwei")){ (啟動百度地圖定位功能)DoAfterReceiveMessage.this.finish(); }elseif(messageText.equals("wujiandao*"+secret_number_acquire()+"*baojing")){ (啟動響鈴功能) }elseif(messageText.equals("wujiandao*"+secret_number_acquire()+"*suoding")){ (啟動鎖屏功能) }elseif(messageText.equals("wujiandao*"+secret_number_acquire()+"*wipedata")){ (詢問安全手機是否進行格式化) }elseif(messageText.equals("wujiandao*"+secret_number_acquire()+"*geshihua")){ (啟動手機格式化) }else{(用戶輸入的密碼出錯) }}定位器的設(shè)計與實現(xiàn)定位器的主類是MyLocation類,主要實現(xiàn)的是利用百度地圖API實現(xiàn)手機自我定位的一個功能,并最終獲取了手機所在地的經(jīng)緯度值,因為本軟件使用了百度地圖SDK,所以定位的功能實現(xiàn)也必須使用百度地圖SDK,這樣定位起來的坐標點才能與百度地圖圖層的地點相吻合。圖3-2定位器發(fā)送指令界面(1)地圖管理器、定位器、搜索器的初始化:BMapManagermapManager=newBMapManager(getApplication());mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4",newMyGeneralListener());mLocationManager=mapManager.getLocationManager();mLocationManager.enableProvider((int)MKLocationManager.MK_GPS_PROVIDER);//初始化MKSearchmMKSearch=newMKSearch();mMKSearch.init(mapManager,newMySearchListener());(2)位置監(jiān)聽器的實現(xiàn),獲取經(jīng)緯度:mLocationListener=newLocationListener(){ publicvoidonLocationChanged(Locationlocation){ Log.d("Sys","MyLocationislistening"); if(location!=null){ x=location.getLatitude(); y=location.getLongitude(); Log.d("Sys","緯度x="+x); Log.d("Sys","經(jīng)度y="+y); Intenti2=newIntent(); i2.setClass(MyLocation.this,Null.class); startActivity(i2); } } };報警響鈴器的設(shè)計與實現(xiàn)響鈴的播放使用到的是Android音頻管理器AudioManager和媒體播放類MediaPlayer,AudioManager用于管理系統(tǒng)音量,或者直接可以控制系統(tǒng)靜音[7]。報警響鈴器主類為RingService,它繼承于Service,是駐后臺的一個服務(wù),實現(xiàn)的主要功能就是以手機的最大音量播放報警鈴聲,同時開啟手機震動,直到設(shè)置的時間結(jié)束為止,或者使用安全手機發(fā)送close英語單詞實現(xiàn)關(guān)閉手機響鈴。這個功能主要是想通過控制手機發(fā)出聲響,讓用戶根據(jù)聲源找到手機的藏身之處。當(dāng)然,即使手機在靜音狀態(tài)下,我們也是可以以最大音量實現(xiàn)發(fā)出警報。報警響鈴器主要在程序啟動的時候就開始監(jiān)聽傳感器的狀態(tài),它主要依靠于Service在后臺運行。Service為服務(wù)類,是一個在背景運行的程序,不提供顯示窗體作為和用戶之間的接口,它運行于應(yīng)用程序的主線程上,不會影響到其他活動程序Activity和用戶接口操作,通常Service會用來處理比較耗時的功能程序[8]。(1)將手機音量調(diào)至最大值:publicvoidonStart(Intentintent,intstartId){mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);max=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);newThread(){ @Override publicvoidrun(){ try{ for(inti=1;i<5;i++){ mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,max,0); sleep(1000*5); } }catch(Exceptione){ e.printStackTrace(); }finally{ stopSelf(); } } }.start(); }(2)啟動報警功能: publicvoidPlayMusic(){ mp=MediaPlayer.create(this,R.raw.test); mp.setLooping(true); mp.start(); vv2=(Vibrator)getSystemService(VIBRATOR_SERVICE);vv2.vibrate(newlong[]{5000,5000},0);}手持設(shè)備權(quán)限管理器的設(shè)計與實現(xiàn)手持設(shè)備權(quán)限管理器主類為DeviceActivity,該類定義了設(shè)備管理權(quán)限(恢復(fù)出廠設(shè)置、鎖定屏幕、重置密碼、限制密碼選擇、監(jiān)控登錄嘗試),并向用戶征得獲得使用權(quán)限的權(quán)利,只有用戶同意激活手機設(shè)備的鎖屏和清除數(shù)據(jù)權(quán)限,本程序才能使用遠程鎖屏功能和遠程格式化手機。(1)類中主要用到了Android系統(tǒng)設(shè)備管理器: /**鎖屏API*/ publicvoidLockScreenNow(){ booleanactive=mDPM.isAdminActive(mDeviceComponentName); if(active){ if(secret_number!=null){ //設(shè)置的PIN密碼 if(secret_number.equals("geshihua")){ //會是手機恢復(fù)出廠設(shè)置,但SD卡不受影響 mDPM.wipeData(0); DeviceActivity.this.finish(); }else{ mDPM.resetPassword(secret_number, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); } } mDPM.lockNow(); DeviceActivity.this.finish(); } } /**格式化手機*/ publicvoidwipeMobileData(){ booleanactive=mDPM.isAdminActive(mDeviceComponentName); if(active){ mDPM.wipeData(0); DeviceActivity.this.finish(); } }圖3-3鎖屏器發(fā)送指令界面圖3-4主機鎖屏界面SIM卡更換通知功能的設(shè)計與實現(xiàn)遠程追蹤的最后一個功能便是,SIM卡的更換通知,用戶事先通過保存本機的SIM卡信息,當(dāng)手機被盜走,并被人更換SIM卡的時候,本程序通過接收Android系統(tǒng)啟動完畢發(fā)出的廣播后,開啟一個SIMService后臺服務(wù),對當(dāng)前手機的SIM卡進行識別和對比,如果發(fā)現(xiàn)SIM卡與之前保存的信息不對稱則會將新的SIM卡號碼通過短信的方式發(fā)送到安全手機,這樣我們便可以獲取嫌疑人的聯(lián)系方式。圖3-5更換SIM卡通知控制界面地圖追蹤功能功能簡介本軟件的地圖追蹤功能主要是建立在遠程控制指令的基礎(chǔ)之上,地圖追蹤功能必須是安全手機和本機的配合。根據(jù)前面章節(jié)的介紹,我們可以通過安全手機發(fā)送遠程定位指令,使得丟失手機開啟MyLocation類進行定位獲取位置經(jīng)緯度,獲取后將經(jīng)緯度和地址信息發(fā)送到安全手機上,此時如果安全手機裝有本程序,則可以從短信中獲取經(jīng)緯度的數(shù)字數(shù)據(jù),并調(diào)用百度地圖SDK在地圖上標注獲取到的坐標,這樣我們就有個直觀的位置感觀。圖4-1獲取定位坐標后安全手機顯示的地圖界面功能詳細設(shè)計前面3.5.3小結(jié)主要提及到的是丟失手機在地圖追蹤這個功能的一個業(yè)務(wù)邏輯,而安全手機這邊的業(yè)務(wù)邏輯也比較簡單,主要功能集中在LocationMapActivity類,下面就介紹下LocationMapActivity的主要邏輯。(1)注冊地圖管理者、定位器,并對地圖控件進行參數(shù)設(shè)定:mapManager=newBMapManager(getApplication());mapManager.init(key,null);super.initMapActivity(mapManager);// 獲取地圖控件mapView=(MapView)findViewById(R.id.mapsView);//獲取定位管理者mLocationManager=mapManager.getLocationManager();//使用GPS定位mLocationManager.enableProvider((int)MKLocationManager.MK_GPS_PROVIDER);//設(shè)置啟用內(nèi)置的縮放控件mapView.setBuiltInZoomControls(true);//設(shè)置在縮放動畫過程中也顯示overlay,默認為不繪制mapView.setDrawOverlayWhenZooming(true);//得到mMapView的控制權(quán),可以用它控制和驅(qū)動平移和縮放mapController=mapView.getController();//設(shè)置地圖zoom級別mapController.setZoom(12);(2)獲取丟失手機傳過來的坐標,加以解析并在地圖上標注起來:publicvoidtheifLocation(){/*獲取小偷位置*/Intentintent=this.getIntent();Bundlebundle=intent.getExtras();intflag=bundle.getInt("flag");// 得到需要標在地圖上的資源 Drawablemarker=getResources().getDrawable(R.drawable.iconmarka);// 為maker定義位置和邊界 marker.setBounds(0,0,marker.getIntrinsicWidth(),marker.getIntrinsicHeight());// 接收到定位短信跳轉(zhuǎn)到地圖if(intent!=null&&flag==1){ Log.d("Sys","intentisn'tNULL"); Stringcontent=bundle.getString("content"); Stringsubstr1=content.substring(start1+1,end1); Stringsubstr2=content.substring(end1+1,start2); thiefstr=content.substring(start2,content.length()); a=(int)(Double.parseDouble(substr1)*1000000); b=(int)(Double.parseDouble(substr2)*1000000);// 用給定的經(jīng)緯度構(gòu)造一個GeoPoint,單位是微度(度*1E6)GeoPointthief=newGeoPoint(a,b);// 設(shè)置地圖中心點mapController.setCenter(thief);mapView.getController().animateTo(thief);//添加ItemizedOverlay實例到mMapViewmapView.getOverlays().add(newOverItemT(marker,thief,this)); //創(chuàng)建點擊mark時的彈出泡泡 mPopView=super.getLayoutInflater().inflate(R.layout.popview,null);mapView.addView(mPopView,newMapView.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,null,MapView.LayoutParams.TOP_LEFT)); mPopView.setVisibility(View.GONE);}}

幫助與升級功能功能簡介此功能分為兩個模塊,一個是幫助功能,主要使用到的是自定義的View類,使用滑動的視圖圖片和圖片指示器將本程序的主要操作和注意事項告知用戶,增強軟件的用戶體驗;此外,考慮到以后軟件的升級和版本的控制,所以借助友盟平臺實現(xiàn)升級和版本控制,當(dāng)我們發(fā)布新版本的時候,用戶可以接收到升級信息。幫助功能模塊第一次打開軟件,會彈出一個幫助的圖形界面,幫助界面如下:圖5-1圖5-2圖5-3圖5-4圖5-5版本升級功能當(dāng)打開軟件,如有新版本推送,則自動彈出升級對話框,每隔一天檢查是否有新版本需要升級。升級代碼如下:MobclickAgent.setUpdateOnlyWifi(false); MobclickAgent.update(this,1000*60*60*24);

軟件測試與使用功能操作1.在首次進入“追蹤手機”模塊的時候,程序會檢測用戶是否設(shè)置了安全密碼,如果已經(jīng)設(shè)置,則彈出密碼輸入界面如圖6-1,如果用戶尚未設(shè)置密碼,則會彈出一個設(shè)置手機安全密碼的界面供用戶設(shè)置密碼,如圖6-2。 圖6-1圖6-22.設(shè)置完密碼后,就可以進入了遠程追蹤手機的界面,如圖6-3,用戶必須先設(shè)置本機的安全手機號碼,此安全手機號碼是相對可靠和安全的,同時為了操作的簡便最好是裝上了本軟件。如圖 圖6-3圖6-43.設(shè)置完安全手機號碼之后,用戶可用安全手機,向本機發(fā)送遠程控制指令。根據(jù)操作需求選擇對應(yīng)的功能選項,比如使用“遠程激活報警鈴聲指令”如圖6-4,用戶需輸入丟失的手機號碼,以及丟失手機在本程序設(shè)置的密碼;單擊發(fā)送則可將指令發(fā)出,本程序?qū)趤G失手機上監(jiān)聽安全手機發(fā)來的指令,當(dāng)丟失手機接收到指令,并開始調(diào)用功能模塊后,會發(fā)送短信回饋給安全手機,告知用戶手機當(dāng)前的狀態(tài)。測試用例測試模塊輸入數(shù)據(jù)預(yù)期輸出結(jié)果設(shè)置安全手存于本地系統(tǒng)配置文件設(shè)置安全密碼123保存于本地系統(tǒng)配置文件設(shè)置SIM卡自啟動檢測開啟功能本地系統(tǒng)配置文件保存啟動狀態(tài)遠程報警響鈴模塊使用安全手機發(fā)送:wujiandao*123*baojing主機發(fā)出警報遠程PIN鎖屏模塊使用安全手機發(fā)送:wujiandao*123*suoding主機出現(xiàn)PIN鎖屏界面遠程定位模塊使用安全手機發(fā)送:wujiandao*123*dingwei主機進行自我定位并將定位的坐標和文本信息發(fā)送至安全手機遠程刪除數(shù)據(jù)模塊使用安全手機發(fā)送:wujiandao*123*wipedata接收到主機回復(fù)是否確定格式化手機的提示遠程格式化手機模塊使用安全手機發(fā)送:wujiandao*123*geshihua主機格式化本機短信、通訊錄、SDcard等數(shù)據(jù)表6-1軟件測試用例表測試結(jié)果與發(fā)現(xiàn)設(shè)置安全手機、密碼、SIM卡自啟動檢測功能測試:

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論