2.1 模块概述
2.1.1 功能介绍
手机防盗模块主要用于SIM卡变更提醒、GPS定位、远程锁定手机、远程删除数据等。接下来针对该模块功能进行介绍,具体如下:
1.设置密码
手机防盗功能是用户的一个隐私设置,因此当第一次进入“手机防盗”模块时需要设置密码,密码设置成功后当再次进入时需要输入密码,才能进入“手机防盗”模块并修改当前设置,具体如图2-1所示。
图2-1 手机防盗界面
2.设置向导
设置向导主要有四个界面,分别用来展示当前模块的功能、SIM卡绑定情况、选择安全联系人、设置完成界面,这几个界面都是通过手指滑动屏幕来实现界面切换的。
当进入SIM卡绑定界面,点击“绑定SIM卡”按钮后,滑动屏幕进入选择安全联系人界面,可以选择通讯录中的号码作为安全号码或者直接输入安全号码,当SIM卡变更时会向安全号码发送报警短信。当前功能都设置完成后,滑动屏幕进入设置完成界面,此时显示防盗保护已经开启,具体如图2-2所示。
图2-2 设置向导界面
3.联系人列表
在设置向导中添加安全联系人时,点击“请输入安全号码”右侧的加号按钮,还可以跳转到联系人列表界面,从该列表中选取安全联系人,具体如图2-3所示。
4.手机防盗界面
手机防盗界面会显示当前设置的安全号码、防盗保护是否开启、重新进入设置向导以及短信指令功能介绍。所谓短信指令就是编辑好的一些特殊指令,当向手机发送对应的指令时会进行不同的操作,例如向手机发送短信“#*alarm*#”此时手机会播放报警音乐,界面如图2-4所示。
图2-3 联系人列表界面
图2-4 手机防盗界面
至此,手机防盗功能已经介绍完成,编程者在开发该功能界面时可以参考上述效果图。
2.1.2 开发流程图
在开发手机防盗模块之前,可以先画一张流程图,了解程序逻辑方便程序开发。手机防盗模块的流程图如图2-5所示。
从图2-5可以看出,当点击“手机防盗”功能图标时,会判断是否设置过防盗密码,如果已经设置,则弹出输入密码对话框;否则弹出设置密码对话框,密码设置成功后会再次弹出输入密码对话框,当密码输入正确时会进入手机防盗界面,然后判断是否设置过防盗向导。如果设置过,则展示手机防盗界面功能,否则进入设置向导界面依次进行设置,设置完成后进入手机防盗界面。
2.1.3 代码结构
手机防盗模块中涉及的代码比较多,逻辑也比较复杂,为了让编程者对该模块的结构更加清楚,接下来通过一个图例来展示手机防盗模块的代码结构,如图2-6所示。
图2-5 手机防盗流程图
图2-6 chapter02代码结构
下面按照结构顺序依次介绍chapter02包中的文件,具体如下:
●ContactAdapter.java:用于填充联系人界面的数据适配器;
●InterPasswordDialog.java:自定义的Dialog对话框,用于输入防盗密码;
●SetUpPasswordDialog.java:自定义的Dialog对话框,用于设置防盗密码;
●ContactInfo.java:用于存储联系人信息的实体类,其中包括id、name、phone字段;
●BootCompleteReciever.java:用于监听手机开机启动的广播接收者,检测SIM卡是否更换;
●MyDeviceAdminReceiver.java:用于获取超级管理员权限的广播接收者;
●SmsLostFindReceiver.java:监听短信到来的广播接收者,接收到指令后进行相应的报警操作;
●GPSLocationService.java:用于定位手机的服务;
●ContactInfoParser.java:用于从数据库中解析联系人信息;
●MD5Utils.java:加密算法的工具类;
●BaseSetUpActivity.java:设置向导的公共父类,封装了一些手势识别的方法;
●ContactSelectActivity.java:获取手机中的联系人并展示到界面中;
●LostFindActivity.java:用于显示手机防盗界面以及防盗指令;
●SetUp1Activity.java:显示设置向导第一个界面;
●SetUp2Activity.java:显示设置向导第二个界面并绑定SIM卡;
●SetUp3Activity.java:显示设置向导第三个界面并选择安全联系人;
●SetUp4Activity.java:显示设置向导第四个界面并开启防盗保护功能。