Android项目实战:手机安全卫士
上QQ阅读APP看书,第一时间看更新

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:显示设置向导第四个界面并开启防盗保护功能。