




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 设 计 题目:基于Android平台的“无间盗”防盗软件 地图追踪及远程指令 学生姓名: 学 号:系 别:专业班级 指导教师姓名及职称:起止时间:摘 要:随着Android系统的发展和智能手机逐渐平民化,其普及率呈指数增长。Android手机市场规模的扩大所引起的手机安全和防盗的问题也愈发突出。本论文在基于Andorid平台上,运用Android短信、广播等通信机制,配合第三方地图服务商提供的地图API对智能手机进行远程指令控制和定位丢失的手机,为找到手机增加可能性,并保护失主隐私。矚慫润厲钐瘗睞枥庑赖。关键词: 远程指令追踪;Android防盗;百度地图;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 communication 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; Baidu map; Android broadcast残骛楼諍锩瀨濟溆塹籟。目 录1. 绪论1酽锕极額閉镇桧猪訣锥。1.1. 研究意义与背景1彈贸摄尔霁毙攬砖卤庑。1.2. 课题的目的及其意义1謀荞抟箧飆鐸怼类蒋薔。1.3. 本文的主要研究工作1厦礴恳蹒骈時盡继價骚。2. Android百度地图API2茕桢广鳓鯡选块网羈泪。2.1. 手机地图服务2鹅娅尽損鹌惨歷茏鴛賴。2.2. 定位技术2籟丛妈羥为贍偾蛏练淨。2.2.1. 基于GSM蜂窝基站定位2預頌圣鉉儐歲龈讶骅籴。2.2.2. 基于GPS卫星定位2渗釤呛俨匀谔鱉调硯錦。2.2.3. 基于WIFI热点定位3铙誅卧泻噦圣骋贶頂廡。2.3. 百度地图API简介3擁締凤袜备訊顎轮烂蔷。3. 远程指令控制功能5贓熱俣阃歲匱阊邺镓騷。3.1. 基本原理及设计5坛摶乡囂忏蒌鍥铃氈淚。3.2. 底层平台导入和开发步骤6蜡變黲癟報伥铉锚鈰赘。3.2.1. 申请密钥6買鲷鴯譖昙膚遙闫撷凄。3.2.2. 导入.jar和.so文件6綾镝鯛駕櫬鹕踪韦辚糴。3.2.3. 初始化声明6驅踬髏彦浃绥譎饴憂锦。3.3. 模块框架图7猫虿驢绘燈鮒诛髅貺庑。3.4. 模块详细设计8锹籁饗迳琐筆襖鸥娅薔。3.4.1. 指令接收器的设计与实现8構氽頑黉碩饨荠龈话骛。3.4.2. 指令业务分发器的设计与实现9輒峄陽檉簖疖網儂號泶。3.4.3. 定位器的设计与实现11尧侧閆繭絳闕绚勵蜆贅。3.4.4. 报警响铃器的设计与实现12识饒鎂錕缢灩筧嚌俨淒。3.4.5. 手持设备权限管理器的设计与实现14凍鈹鋨劳臘锴痫婦胫籴。3.4.6. SIM卡更换通知功能的设计与实现15恥諤銪灭萦欢煬鞏鹜錦。4. 地图追踪功能16鯊腎鑰诎褳鉀沩懼統庫。4.1. 功能简介16硕癘鄴颃诌攆檸攜驤蔹。4.2. 功能详细设计16阌擻輳嬪諫迁择楨秘騖。5. 帮助与升级功能19氬嚕躑竄贸恳彈瀘颔澩。5.1. 功能简介19釷鹆資贏車贖孙滅獅赘。5.2. 帮助功能模块19怂阐譜鯪迳導嘯畫長凉。5.3. 版本升级功能19谚辞調担鈧谄动禪泻類。6. 软件测试与使用20嘰觐詿缧铴嗫偽純铪锩。6.1. 功能操作20熒绐譏钲鏌觶鷹緇機库。6.2. 测试用例21鶼渍螻偉阅劍鲰腎邏蘞。6.3. 测试结果与发现21纣忧蔣氳頑莶驅藥悯骛。7. 总结25颖刍莖蛺饽亿顿裊赔泷。参考文献26濫驂膽閉驟羥闈詔寢賻。致 谢26銚銻縵哜鳗鸿锓謎諏涼。II1. 绪论1.1. 研究意义与背景随着智能移动终端发展和普及,人们试图让交互的应用伴随移动的用户在对应的空间中迁移。从全球的发展趋势来看,更高水平的基于位置服务(LBS)、基于空间定位等功能是新一代移动网络应该具备的,是网络业务支撑能力的一种体现,我国移动运营商更已将其视为形象工程。LBS依赖于高精度定位技术的发展,随着定位技术的发展和人们网络社交心理、行为的成熟;LBS将更加实用化,所衍生出的服务和产业链将更加丰富和广阔,为用户提供随时随身的服务。挤貼綬电麥结鈺贖哓类。1.2. 课题的目的及其意义基于地图位置服务发展迅速,对人机界面与地理信息系统服务整合具有重要的理论和现实意义。本课题在此基础上利用Androidd的短信通信机制、广播机制以及第三方地图软件提供商的API,实现并研究手机防盗在移动技术上的新应用。将手机防盗技术应用于日常生活之中,对降低手机及其资料被盗的风险和减少个人的财产损失有着重大意义和应用价值。赔荊紳谘侖驟辽輩袜錈。 通过此课题,能够培养学生动手能力,增强个人思维模式,锻炼软件开发中遇到问题的调试能力,进而加强专业技术。塤礙籟馐决穩賽釙冊庫。1.3. 本文的主要研究工作本文主要研究的是基于Android系统短信通知机制的远程追踪控制指令,以及第三方地图API的使用,通过两者的配合和应用来巩固手机防盗的防线。裊樣祕廬廂颤谚鍘羋蔺。2. Android百度地图API 2.1. 手机地图服务手机地图服务是指在手机上利用GPS或者网络实现精确定位,通过使用WAP方式或客户端方式,得到相关位置信息的业务。为用户提供了一种便捷实用的掌上地图,通过手机屏幕,用户可以查询城市信息、查找自己的位置、查找道路信息。它以矢量地图、卫星地图、混合地图3种服务模式向全球提供地图搜索和逐级缩放功能的地图服务,让全球用户体验到了新的地图服务模式。仓嫗盤紲嘱珑詁鍬齊驁。目前,主流的地图服务在国外有Google Maps,Yahoo地图服务,Virtual Earth服务三大服务,而国内则有搜狐旗下的搜狗、百度、高德等主要的地图服务。本软件之所以选用百度地图服务是因为其功能与国外地图相比更具本地特色,也更加实用,其位置相对与国内而言也更为精准。绽萬璉轆娛閬蛏鬮绾瀧。2.2. 定位技术移动终端的定位是通过检测移动终端和基站之间传播信号的特征参数来获得其几何位置,在显示应用中,主要有三种常用的定位方式:骁顾燁鶚巯瀆蕪領鲡赙。2.2.1. 基于GSM蜂窝基站定位把移动电话的服务区别分为一个个正六边形的子区,每个小区设一个基站。形成了形状酷似“蜂窝”的结构1,移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻)或TDOA(Time Difference of Arrivalm,到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。瑣钋濺暧惲锟缟馭篩凉。2.2.2. 基于GPS卫星定位 GPS的空间部分是由24颗卫星组成(其中有21颗工作卫星,3颗备用卫星)。在空旷地带且无阻挡的前提下,GPS定位技术的定位精度可达15米左右。但是,在很多情况下,GPS接收机不能够捕获足够多的GPS卫星信号,定位精度将会大大的降低,甚至不能定位(如室内)。GPS系统主要由三大部分组成:GPS卫星星座(空间部分)、地面监控系统(控制部分)和GPS信号接收机(用户部分)。GPS的定位原理就是根据高速运动的卫星瞬间位置作为已知的数据,采用空间距离后方交会的方法,确定待测点的位置2。鎦诗涇艳损楼紲鯗餳類。 我们通常所说的GPS往往仅只用户设备部分,它通过接受天空不同位置的三颗以上的卫星信号,手机捕获到跟踪的卫星信号后,配合地面接收天线就可按定位解算方法进行定位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。简单来说是利用了数学上三条线确定一个空间点的原理。虽然GPS定位最为精准,但其缺点是耗电、定位慢并且无法室内定位。栉缏歐锄棗鈕种鵑瑶锬。2.2.3. 基于WIFI热点定位基于WIFI热点定位的原理跟GSM基站定位的原理差不多,前提是我们必须拿到WIFI路由器的SSID和信号强度。当然,我们并不需要真正连接上指定的WIFI路由器,只需要探测到有WIFI存在即可。辔烨棟剛殓攬瑤丽阄应。 定位端只要侦听一下附近都有哪些热点,检测一下每个热点的信号强弱,然后把这些信息发送给Skyhook的服务器。服务器根据这些信息,查询每个热点在数据库里记录的坐标,进行运算,就能知道客户端的具体位置了,再把坐标告诉客户端。可以想想,只要收到的AP信号越多,定位就会越准。峴扬斕滾澗辐滠兴渙藺。2.3. 百度地图API简介百度地图移动版API(Android)是一套基于Android 1.5及以上设备的应用程序接口,通过该接口,您可以轻松访问百度服务和数据,构建功能丰富、交互性强的地图应用程序3。百度地图移动版API不仅包含构建地图的基本接口,还提供了诸如地图定位、本地搜索、路线规划等数据服务,你可以根据自己的需要进行选择。詩叁撻訥烬忧毀厉鋨骜。百度地图API将复杂的底层逻辑进行封装,以一种便于开发者理解的方式提供。开发者只需要按照API文档的要求进行注册即可使用,客户端不需要安装任何软件、控件或地图,所有运算都会在百度公司的服务器中运行,由API 进行组织显示、分级缩放和漫游。使用者只需要通过其 API,利用 Android开发包就可以将百度地图服务应用到自己的软件中。则鯤愜韋瘓賈晖园栋泷。其中客户端主要完成地图的加载、地图浏览和查询功能,它的设计重点是地图浏览和查询界面,以及将用户的访问和查询请求打包发送给服务器9。应用服务器方面则负责处理用户的访问和查询请求,数据服务器则用于存取各类空间数据和属性信息,采用 SQL Server 数据库存取表格,并在接到Query查询指令后执行相应的操作9。系统体系结构如运行如下图所示。胀鏝彈奥秘孫戶孪钇賻。 图2-1 地图服务原理图3. 远程指令控制功能3.1. 基本原理及设计本软件的远程指令控制功能本质上是使用了Android系统的短信收发和系统的广播机制再加上自编的指令编码实现对丢失手机的功能控制,我们把它定义为本软件的第二道防线。基于这道防线,我们可以通过安全手机向丢失的手机进行远程控制响铃、PIN码锁屏、远程定位、获取新SIM卡号码和格式化丢失手机SD卡等功能。鳃躋峽祷紉诵帮废掃減。首先,需要为主机设置安全密码和一个安全手机号码,并对这两个数据保存到系统的配置文件。在这里使用到的是Android数据持久化的一种做法:SharePreference:稟虛嬪赈维哜妝扩踴粜。SharePreference用来存储和检索一些关键变量的内容,这些内容常驻于手机xml文件之中,它是使用键值对的方式来存取文件中的数据的4。陽簍埡鲑罷規呜旧岿錟。Android提供了一个SmsManager.class让应用程序拥有完整的权限来进入SMS短信的管理,自从Android 1.5版本之后,SmsManager信息管理器可以支持GSM和CDMA的移动手机通信标准。5发送一条SMS信息对Android系统来说有相当规范的步骤:沩氣嘮戇苌鑿鑿槠谔應。(1) 在AndroidMainifest.xml文件中声明权限:钡嵐縣緱虜荣产涛團蔺。懨俠劑鈍触乐鹇烬觶騮。(2) 使用SmsManager.getDefault()静态方法,获取SmsManger的实例:SmsManager mySms = SmsManager.getDefault();(3) 定义一个目标号码和发送文本,使用sendTextMessage()方法发送SMS信息到另一个Android设备:謾饱兗争詣繚鮐癞别瀘。String destination = 123456789;String msg = Sending my first message;mySMS.sendTextMessage(destination,null,msg,null,null);呙铉們欤谦鸪饺竞荡赚。 在Android系统中有一个很重要的组件,那就是广播BroadcastReceiver,广播接收器组件用于接收和响应系统广播的消息。广播接收器也需要通过Activity与用户交互进行桥接6。 莹谐龌蕲賞组靄绉嚴减。Android系统在手机收到运营商的短信后,会向手机每个应用程序发送短信广播,通知所有应用程序此时此刻系统有短信接收,只要在程序中注册短信广播接收器,我们就可以在程序中分析短信文本。实现具体的操作和功能实现。系统的短息广播标志为:vider.Telephony.SMS_RECEIVED。麸肃鹏镟轿騍镣缚縟糶。本软件的远程指令控制需要建立一套用于安全手机和被盗手机相互识别的指令集,在软件中指令集的定义如下:1. 发送定位丢失手机指令:(wujiandao*密码*dingwei)2. 发送激活报警铃声指令:(wujiandao*密码*baojing)3. 发送设定屏保密码指令:(wujiandao*密码*suoding)4. 发送格式化请求指令:(wujiandao*密码*wipedata)5. 发送确定格式化指令:(wujiandao*密码*geshihua)6. 获取丢失手机坐标指令:(Location#纬度#经度*地址*)根据以上的指令集,在程序中开启一个后台服务,在服务中注册短信广播接收器,这里需要把广播接收器的权限提至最高,保证一旦接收到系统的短信可以最先过滤和分析这些指令;一旦确定是以上指令集的内容,则将指令解析并销毁短信广播,保证不影响其他应用程序的正常工作。納畴鳗吶鄖禎銣腻鰲锬。3.2. 底层平台导入和开发步骤3.2.1. 申请密钥百度地图SDK提供的服务是免费的,接口无使用次数限制。我们首先要需先申请密钥(key),才可使用该套SDK。任何非营利性程序请直接使用,商业使用必须请参考使用须知。風撵鲔貓铁频钙蓟纠庙。/map/android-mobile-apply-key.htm 通过这个网站同意与百度的协议,我们就可以获得密钥。灭嗳骇諗鋅猎輛觏馊藹。3.2.2. 导入.jar和.so文件在项目Libraries里添加baidumapapi.jar,将libBMapApiEngine_v1_3_5.so复制到工程目录下的libsarmeabi。铹鸝饷飾镡閌赀诨癱骝。3.2.3. 初始化声明地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init, start, stop, destroy。建议在Application里生成BMapManager对象并初始化,在程序退出时调用destory,在需要使用sdk功能的Activity的onCreate里调用start, onDestroy调用stop,或者onResume/onPause分别调用start和stop 1。攙閿频嵘陣澇諗谴隴泸。3.3. 模块框架图图 3-1 远程追踪指令模块流程图3.4. 模块详细设计3.4.1. 指令接收器的设计与实现指令接收器的核心类是SmsReceiver,该类是自定义的广播接收器,继承Android中的BroastReceiver,是程序远程控制指令的核心类,主要用于接收和解析收到的指令短信,对非指令短信进行过滤;此类的使用首先是在AndroidManifest.xml文件进行注册,这样就可以保证当Android系统接收到短息,向所有程序发出短信广播的时候,本程序能接收到短信广播和广播夹带的文本。趕輾雏纨颗锊讨跃满賺。(1) 广播注册代码: 夹覡闾辁駁档驀迁锬減。 其中android:priority 为广播的优先级,将此优先级别设置较高的参数,保证本程序能够拦截短信并对特定短信进行解析。视絀镘鸸鲚鐘脑钧欖粝。(2) 功能代码:public void onReceive(Context context, Intent intent) 偽澀锟攢鴛擋緬铹鈞錠。 /判断传来Intent是否为短信 if (intent.getAction().equals(SMSACTION) Bundle bundle = intent.getExtras(); /接收由Intent传来的数据緦徑铫膾龋轿级镗挢廟。 /判断Intent是有数据 if (bundle != null) /pdus为 android内置短信参数 identifier,通过bundle.get()返回一包含pdus的对象騅憑钶銘侥张礫阵轸蔼。 Object smsObject = (Object) bundle.get(pdus);疠骐錾农剎貯狱颢幗騮。 /构造短信对象 SmsMessage messages = new SmsMessagesmsObject.length; 镞锊过润启婭澗骆讕瀘。 for (int i = 0; i10)邁茑赚陉宾呗擷鹪讼凑。 String substr = currentMessage.getDisplayMessageBody().substring(0,10); 嵝硖贪塒廩袞悯倉華糲。 if(substr.equals(wujiandao*) /屏蔽指令短信,以防干扰其他应用程序 abortBroadcast(); Intent myIntent = new Intent(context,DoAfterReceiveMessage.class); 该栎谖碼戆沖巋鳧薩锭。 . context.startActivity(myIntent); if(currentMessage.getDisplayMessageBody().substring(0,9).equals(Location#)劇妆诨貰攖苹埘呂仑庙。/ abortBroadcast(); /屏蔽短信 Log.d(Sys,SMS:Location#); Intent i = new Intent(context,LocationMapActivity.class); 臠龍讹驄桠业變墊罗蘄。 . context.startActivity(i); 3.4.2. 指令业务分发器的设计与实现指令业务分发器的核心类是DoAfterReceiveMessage,主要是用于处理由SmsReceiver传送过来的远程指令功能业务;本质上它是一个业务逻辑分发器,根据不同的指令,启动不同的业务功能;与此同时,它还肩负一个向安全手机反馈的功能。鰻順褛悦漚縫冁屜鸭骞。(1) 获取从SmsReceiver传过来的短息:/* 接收传递来的信息 */private void receiveMessage() Intent startingIntent = getIntent();if (startingIntent != null) Bundle infod = startingIntent.getExtras();if(infod!=null) number = infod.getString(sms_Address); messageText = infod.getString(sms_Text);(2) 分发处理从SmsReceiver传过来的业务请求,启动不同的业务功能: protected void onResume() super.onResume();if(secret_number_acquire()= null)sendMessage(您手机未设定密码,不能进行远程操作。,number);DoAfterReceiveMessage.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()+*suoding)浹繢腻叢着駕骠構砀湊。 .(启动锁屏功能) else if(messageText.equals(wujiandao*+secret_number_acquire()+*wipedata)鈀燭罚櫝箋礱颼畢韫粝。 .(询问安全手机是否进行格式化)else if(messageText.equals(wujiandao*+secret_number_acquire()+*geshihua)惬執缉蘿绅颀阳灣熗鍵。.(启动手机格式化)else .(用户输入的密码出错)3.4.3. 定位器的设计与实现定位器的主类是MyLocation类,主要实现的是利用百度地图API实现手机自我定位的一个功能,并最终获取了手机所在地的经纬度值,因为本软件使用了百度地图SDK,所以定位的功能实现也必须使用百度地图SDK,这样定位起来的坐标点才能与百度地图图层的地点相吻合。贞廈给鏌綞牵鎮獵鎦龐。图 3-2 定位器发送指令界面(1) 地图管理器、定位器、搜索器的初始化: BMapManager mapManager = new BMapManager(getApplication(); 嚌鲭级厨胀鑲铟礦毁蕲。 mapManager.init(285B415EBAB2A92293E85502150ADA7F03C777C4,new MyGeneralListener(); 薊镔竖牍熒浹醬籬铃騫。 mLocationManager = mapManager.getLocationManager(); 齡践砚语蜗铸转絹攤濼。 mLocationManager.enableProvider(int) MKLocationManager.MK_GPS_PROVIDER); 绅薮疮颧訝标販繯轅赛。 / 初始化MKSearch mMKSearch = new MKSearch(); mMKSearch.init(mapManager, new MySearchListener(); 饪箩狞屬诺釙诬苧径凛。(2) 位置监听器的实现,获取经纬度: mLocationListener = new LocationListener() public void onLocationChanged(Location location) Log.d(Sys, MyLocation is listening.);if(location!=null)x=location.getLatitude();y=location.getLongitude();Log.d(Sys, 纬度x=+x);Log.d(Sys, 经度y=+y);Intent i2 = new Intent();i2.setClass(MyLocation.this, Null.class);startActivity(i2);3.4.4. 报警响铃器的设计与实现响铃的播放使用到的是Android音频管理器AudioManager和媒体播放类MediaPlayer,AudioManager用于管理系统音量,或者直接可以控制系统静音7。报警响铃器主类为RingService,它继承于Service,是驻后台的一个服务,实现的主要功能就是以手机的最大音量播放报警铃声,同时开启手机震动,直到设置的时间结束为止,或者使用安全手机发送close英语单词实现关闭手机响铃。这个功能主要是想通过控制手机发出声响,让用户根据声源找到手机的藏身之处。当然,即使手机在静音状态下,我们也是可以以最大音量实现发出警报。烴毙潜籬賢擔視蠶贲粵。报警响铃器主要在程序启动的时候就开始监听传感器的状态,它主要依靠于Service在后台运行。Service为服务类,是一个在背景运行的程序,不提供显示窗体作为和用户之间的接口,它运行于应用程序的主线程上,不会影响到其他活动程序Activity和用户接口操作,通常Service会用来处理比较耗时的功能程序8。鋝岂涛軌跃轮莳講嫗键。(1) 将手机音量调至最大值: public void onStart(Intent intent, int startId) mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);撷伪氢鱧轍幂聹諛詼庞。 max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); 踪飯梦掺钓貞绫賁发蘄。 new Thread()Overridepublic void run()tryfor(int i=1;i5;i+)mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, max, 0) ;婭鑠机职銦夾簣軒蚀骞。sleep(1000*5) ;catch(Exception e)e.printStackTrace();finallystopSelf();.start(); (2) 启动报警功能:public void PlayMusic() mp = MediaPlayer.create(this,R.raw.test); mp.setLooping(true); mp.start(); vv2 = (Vibrator) getSystemService(VIBRATOR_SERVICE); 譽諶掺铒锭试监鄺儕泻。 vv2.vibrate(new long5000,5000,0); 3.4.5. 手持设备权限管理器的设计与实现手持设备权限管理器主类为DeviceActivity,该类定义了设备管理权限(恢复出厂设置、锁定屏幕、重置密码、限制密码选择、监控登录尝试),并向用户征得获得使用权限的权利,只有用户同意激活手机设备的锁屏和清除数据权限,本程序才能使用远程锁屏功能和远程格式化手机。俦聹执償閏号燴鈿膽賾。(1) 类中主要用到了Android系统设备管理器:/* 锁屏API */public void LockScreenNow() boolean active = mDPM.isAdminActive(mDeviceComponentName);缜電怅淺靓蠐浅錒鵬凜。if (active) if (secret_number != null) / 设置的PIN密码if (secret_number.equals(geshihua) / 会是手机恢复出厂设置,但SD卡不受影响mDPM.wipeData(0);DeviceActivity.this.finish(); else mDPM.resetPassword(secret_number,DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);mDPM.lockNow();DeviceActivity.this.finish();/* 格式化手机 */public void wipeMobileData() boolean active = mDPM.isAdminActive(mDeviceComponentName);骥擯帜褸饜兗椏長绛粤。if (active) mDPM.wipeData(0);DeviceActivity.this.finish(); 图3-3 锁屏器发送指令界面 图3-4 主机锁屏界面3.4.6. SIM卡更换通知功能的设计与实现 远程追踪的最后一个功能便是,SIM卡的更换通知,用户事先通过保存本机的SIM卡信息,当手机被盗走,并被人更换SIM卡的时候,本程序通过接收Android系统启动完毕发出的广播后,开启一个SIMService后台服务,对当前手机的SIM卡进行识别和对比,如果发现SIM卡与之前保存的信息不对称则会将新的SIM卡号码通过短信的方式发送到安全手机,这样我们便可以获取嫌疑人的联系方式。 癱噴导閽骋艳捣靨骢鍵。 图3-5 更换SIM卡通知控制界面4. 地图追踪功能4.1. 功能简介本软件的地图追踪功能主要是建立在远程控制指令的基础之上,地图追踪功能必须是安全手机和本机的配合。根据前面章节的介绍,我们可以通过安全手机发送远程定位指令,使得丢失手机开启MyLocation类进行定位获取位置经纬度,获取后将经纬度和地址信息发送到安全手机上,此时如果安全手机装有本程序,则可以从短信中获取经纬度的数字数据,并调用百度地图SDK在地图上标注获取到的坐标,这样我们就有个直观的位置感观。鑣鸽夺圆鯢齙慫餞離龐。 图 4-1 获取定位坐标后安全手机显示的地图界面4.2. 功能详细设计前面3.5.3小结主要提及到的是丢失手机在地图追踪这个功能的一个业务逻辑,而安全手机这边的业务逻辑也比较简单,主要功能集中在LocationMapActivity类,下面就介绍下LocationMapActivity的主要逻辑。榄阈团皱鹏緦寿驏頦蕴。(1) 注册地图管理者、定位器,并对地图控件进行参数设定: mapManager = new BMapManager(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); 幘觇匮骇儺红卤齡镰瀉。/ 设置启用内置的缩放控件 mapView.setBuiltInZoomControls(true); / 设置在缩放动画过程中也显示overlay,默认为不绘制 mapView.setDrawOverlayWhenZooming(true); / 得到mMapView的控制权,可以用它控制和驱动平移和缩放 mapController = mapView.getController(); / 设置地图zoom级别 mapController.setZoom(12); (2) 获取丢失手机传过来的坐标,加以解析并在地图上标注起来:public void theifLocation() /*获取小偷位置*/ Intent intent=this.getIntent(); Bundle bundle = intent.getExtras(); int flag = bundle.getInt(flag);/得到需要标在地图上的资源Drawable marker = getResources().getDrawable(R.drawable.iconmarka); 誦终决懷区馱倆侧澩赜。/ 为maker定义位置和边界marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight(); 医涤侣綃噲睞齒办銩凛。/接收到定位短信跳转到地图 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) (Double.parseDouble(substr1)*1000000); b = (int) (Double.parseDouble(substr2)*1000000); ./用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) GeoPoint thief = new GeoPoint(a,b); /设置地图中心点 mapController.setCenter(thief); mapView.getController().animateTo(thief);/ 添加ItemizedOverlay实例到mMapView mapView.getOverlays().add(new OverItemT(marker,thief,this); 鸪凑鸛齏嶇烛罵奖选锯。/ 创建点击mark时的弹出泡泡 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); 5. 帮助与升级功能5.1. 功能简介此功能分为两个模块,一个是帮助功能,主要使用到的是自定义的View类,使用滑动的视图图片和图片指示器将本程序的主要操作和注意事项告知用户,增强软件的用户体验;此外,考虑到以后软件的升级和版本的控制,所以借助友盟平台实现升级和版本控制,当我们发布新版本的时候,用户可以接收到升级信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国激光条码阅读器行业市场调查、投资前景及策略咨询报告
- 2025年中国浪涌电子负载行业市场调查、投资前景及策略咨询报告
- 2025年中国气鼓行业投资前景及策略咨询研究报告
- xxx企业工伤管理制度
- 分公司区域销售管理制度
- 公司大厅值班室管理制度
- 公司外贸接待室管理制度
- 加油站模式考勤管理制度
- 化妆品技术部门管理制度
- 办公室培训教室管理制度
- 拟投入的主要物资计划
- 广东省中山市2022-2023学年高一年级下册期末统一考试物理试题含解析
- 2024年横州茉莉花投资集团有限责任公司招聘笔试冲刺题(带答案解析)
- 蔬菜栽培学智慧树知到期末考试答案章节答案2024年浙江大学
- JB-T 14320-2022 氧气用止回阀
- 专题强化三 异面直线、线面角和二面角技巧-2021-2022学年高一数学【考题透析】满分计划系列(人教A版2019必修第二册)
- 产品封样管理制度
- 2024年湖北襄阳市检察机关襄阳市城郊地区检察院招聘笔试参考题库附带答案详解
- 人工智能专业发展规划方案
- 2024年湖北省知名中小学教联体联盟生物结业考试模拟试题
- AQ-T 1009-2021矿山救护队标准化考核规范
评论
0/150
提交评论