基于android的手机防盗appdoc文档格式.docx

上传人:b****3 文档编号:13522606 上传时间:2022-10-11 格式:DOCX 页数:14 大小:226.90KB
下载 相关 举报
基于android的手机防盗appdoc文档格式.docx_第1页
第1页 / 共14页
基于android的手机防盗appdoc文档格式.docx_第2页
第2页 / 共14页
基于android的手机防盗appdoc文档格式.docx_第3页
第3页 / 共14页
基于android的手机防盗appdoc文档格式.docx_第4页
第4页 / 共14页
基于android的手机防盗appdoc文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于android的手机防盗appdoc文档格式.docx

《基于android的手机防盗appdoc文档格式.docx》由会员分享,可在线阅读,更多相关《基于android的手机防盗appdoc文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

基于android的手机防盗appdoc文档格式.docx

xxx

专业(班级)

信息安全11-x

设计题目

基于android的手机防盗app

(1)开机自启动

(2)获得android手机SIM卡号

(3)读写隐藏文件

(4)用MD5对文件进行加解密

(5)手机gps的应用

(1)手机防盗:

根据sim的变更, 

判断手机是否被盗。

(2)根据协议发送手中中sim卡的信息,和当前手机的位置经纬度,给安全号码发送信息。

(3) 

快速进入手机防盗md5加密。

要求设计说明书的字数在3000字以上。

2014.11.18根据课程设计的要求,查找相关资料,完成需求分析;

2014.11.19-11.25进行系统的概要设计;

2014.11.26-12.14进行系统的详细设计和源代码的书写;

2014.12.15对系统进行调试分析,写出课程设计报告。

(1)《Android系统原理及开发要点详解》韩超,梁泉著电子工业出版社

(2)《Android应用开发揭秘》杨丰盛著机械工业出版社

(3)《android开发入门与实战》姚尚朗著人民邮电出版社

指导教师签字

教研室主任签字

年月日

指导教师评语:

成绩:

XXXX大学课程设计(论文)成绩评定表

1.问题描述1

1.1问题的意义1

1.1.实验目的1

2.需求分析1

3.概要设计2

3.1手机防盗app实现流程分析2

4.详细设计3

4.1开机自启动模块3

4.2读取sim卡卡号4

4.3获取手机持有者位置信息5

4.5实现MD5加解密7

4.6文件的隐藏8

5.调试分析9

5.1设计的思考9

5.2常见问题9

6.测试结果10

6.1开机自启动测试结果10

6.2获得手机持有者当前位置测试结果10

6.3获得当前sim卡信息测试结果11

6.4读写隐藏文件以及生产MD5值测试结果11

总结12

参考文献13

1.问题描述

1.1问题的意义

通过本次课程设计了解安卓应用开发的基本流程,学会安卓应用开发过程中基本组件的使用,同时掌握安卓应用中一些基本服务的开启以及权限的添加。

(1)加深对安卓应用开发的流程的理解。

(2)熟练掌握安卓应用开发中基本服务的开启及对应服务权限的添加。

(3)加深对MD5散发的理解与应用。

1.1.实验目的

(1)掌握安卓应用开发的流程。

(2)掌握安卓应用开发中基本服务的开启及对应服务权限的添加。

(3)对已学过的安卓应用开发技术有一个系统的理解。

2.需求分析

在现实生活中几乎每个人手中都有一部手机,然而手机的丢失却越来越成为问题。

面对这个问题大家都没有很好的解决办法,也只能在自身的条件下提高安全意识。

我们这次课程设计主要实现当手机丢失后尽最大可能的找回手机,这在很大程度上弥补了安全措施的不足,基于手机防盗的app市面上有很多但大部分都做得不尽完美,总存在着缺陷,希望我们的这个课程设计能给大家一个新的思路去开发手机防盗app。

3.概要设计

3.1手机防盗app实现流程分析

本软件实现开机自启动,然后自动测试sim卡卡号,并与之前的卡号对比,若相同不做任何处理,若不同则定时向安全号码发送信息,以确认sim卡变更是否为正常行为。

发送信息的内容包括当前sim卡卡号、手机持有者的位置(经度,纬度),持有者移动速度与方向。

这样可以在手机丢失后方便丢失者找回手机。

流程图如图3.1所示:

图3.1手机防盗流程图

4.详细设计

4.1开机自启动模块

当Android手机启动时,会发出一个系统广播,其中就有开机自启动的广播信息ACTION_BOOT_COMPLETED,它的字符串表示常量为android.intent.action.BOOT_COMPLETED。

所以只要在开始时程序中捕获这个广播消息就可以开机自启动了。

为了捕获这个消息需要实现一个BroadcastReceiver的子类,在这个类中的onReceive方法里实现activity或者service的启动,需要在AndroidManifest.xml注册并添加相应的权限,如下;

<

!

--向系统注册receiver-->

receiver

android:

name="

com.example.mobilesafety.MyBroadcastReceive"

>

<

intent-filter>

actionandroid:

android.intent.action.BOOT_COMPLETED"

/>

/intent-filter>

/receiver>

/application>

--添加权限-->

uses-permissionandroid:

name="

android.permission.RECEIVE_BOOT_COMPLETED"

具体实现源码如下:

publicclassMyBroadcastReceiveextendsBroadcastReceiver{

privatefinalStringACTION="

;

//定义捕获消息的内容

@Override

publicvoidonReceive(Contextcontext,Intentintent){

//TODOAuto-generatedmethodstub

if(intent.getAction().equals(ACTION));

//判断捕获的消息是//否为开机自启动消息,并启动SafetyMainActivity

{

Intentintent2=newIntent(context,SafetyMainActivity.class);

intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent2);

}

}

}

4.2读取sim卡卡号

手机号码不是所有的都能获取。

只是有一部分可以拿到。

这个是由于移动运营商没有把手机号码的数据写入到sim卡中。

SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。

所以我们读取的是IMSI好,需要在AndroidManifest.xml添加相应的权限,如下;

uses-permissionandroid:

android.permission.READ_PHONE_STATE"

具体过程实现如下;

privateTelephonyManagertManager;

//定义TelephonyManager的对象,//以获得手机设备信息

publicStringgetSimSerialNumber(){

tManager=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);

//获得系统中TelephonyService

Stringline=tManager.getSimSerialNumber();

//获取SIM卡卡号

returnline;

4.3获取手机持有者位置信息

GPS定位技术的主要功能是能够为终端用户提供高精度的位置信息。

移动运营商采用基于GPS定位技术的位置服务后,终端用户可以方便快捷地获知自己或他人当前所处的位置,这也为我们防盗提供了方便,在AndroidManifest.xml添加相应的权限,如下;

uses-permissionandroid:

android.permission.ACCESS_FINE_LOCATION"

>

/uses-permission>

具体实现过程如下;

publicclassGPSMainActivityextendsActivityimplementsLocationListener{

privateLocationManagerlocationManager;

privateLocationlocation;

privateStringprovider;

privateSimpleDateFormatsimpleDateFormat;

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.fragment_gpsmain);

locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);

//获得系统服务

simpleDateFormat=newSimpleDateFormat("

yy-mm-ddhh:

mm:

ss"

);

//使用Criteria确定androidlocationprovider

Criteriacriteria=newCriteria();

criteria.setAccuracy(Criteria.ACCURACY_FINE);

//设置为最大精度

criteria.setAltitudeRequired(false);

//不要求海拔信息

criteria.setBearingRequired(false);

//不要求方位信息

criteria.setCostAllowed(true);

//是否允许付费

criteria.setPowerRequirement(Criteria.POWER_LOW);

//对电量的要求

criteria.setAccuracy(Criteria.ACCURACY_FINE);

provider=locationManager.getBestProvider(criteria,true);

location=locationManager.getLastKnownLocation(provider);

updateWithNewLocation(location);

locationManager.requestLocationUpdates(provider,2000,10,this);

privatevoidupdateWithNewLocation(Locationlocation2){

StringlatLongSt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1