Android课程设计基于Android的手机安全卫士.docx

上传人:b****5 文档编号:8309220 上传时间:2023-01-30 格式:DOCX 页数:23 大小:184.29KB
下载 相关 举报
Android课程设计基于Android的手机安全卫士.docx_第1页
第1页 / 共23页
Android课程设计基于Android的手机安全卫士.docx_第2页
第2页 / 共23页
Android课程设计基于Android的手机安全卫士.docx_第3页
第3页 / 共23页
Android课程设计基于Android的手机安全卫士.docx_第4页
第4页 / 共23页
Android课程设计基于Android的手机安全卫士.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Android课程设计基于Android的手机安全卫士.docx

《Android课程设计基于Android的手机安全卫士.docx》由会员分享,可在线阅读,更多相关《Android课程设计基于Android的手机安全卫士.docx(23页珍藏版)》请在冰豆网上搜索。

Android课程设计基于Android的手机安全卫士.docx

Android课程设计基于Android的手机安全卫士

 

课程设计报告书

课程

课题:

基于Android的手机安全卫士

姓名:

学号:

专业:

网络工程

年级:

2012级

指导教师:

 

2016年6月

一、项目介绍与设计目的

1.1课程设计目的

(1)掌握Android编程环境的安装。

(2)学会使用模拟器模拟手机环境。

(3)掌握Android的APP开发过程。

(4)掌握Android能够实现的功能。

(5)掌握手机安全卫士APP功能设计。

1.2课程设计要求

(1)开发出一款手机安全卫士APP。

(2)能够实现文件管理功能。

(3)能够实现对手机安全保护。

(4)实现电话安全管理。

1.3课程设计内容

(1)Android开发环境搭建与配置。

(2)手机安全卫士功能设计。

(3)代码编写。

(4)测试与调试。

1.4课程设计意义

通过课程设计,我们学习到了Android开发的流程和简单的APP开发经历,并初步打好编程基础。

根据这次课程设计的经历,我们可以更快,更有方向的进行更深入的学习。

这次课题是基于安卓手机安全卫士开发一款手机应用软件,对于手机安全软件的功能实现有了更准确的认识,能够感受到当前手机

数据保护对于用户来说是一个多么重要的事情。

我们要实现对手机端的安全保护是刻不容缓的事情,继续探索安全保护方法是我们接下来要继续努力完成的任务。

 

二、设计方案

1.格式布局

1.1下面是本次课程设计规划的logo登陆界面(如图1):

图1Logo界面

1.2下面是本次课程设计规划的功能界面(如图2):

图2功能界面

2.功能设计内容

2.1SIM卡信息

功能介绍:

此功能可以获取手机网络、SIM卡相关信息。

(如图3)根据SIM卡设备当前位置信息,通过可以查询到本机所在地的位置。

(如图4)

 

图3SIM卡信息

图4基站查询结果

2.2通讯卫士

功能介绍:

该功能可以对手机通话状态进行监听。

(如图5)当手机来电铃声想起时,程序会把来电号码记录到文件中。

这个文件保存在手机数据库里的data/data/org.crazyit.manager/files目录下的phoneList文件中。

将文件导入到电脑中可以查看该文件内容。

(如图6)

图5通讯卫士

图6phoneList文件内容

2.3文件管理

功能介绍:

查看系统文件夹和文件,SD卡文件夹和文件(如图7)。

图7文件管理

2.4发送短信

功能介绍:

在收件人号码输入框内输入收信人的电话号码,在短信内容内输入内容后就可以发送短信了。

(如图8)

图8发送短信

 

3.主要代码实现

3.1SIM卡信息模块

publicclassTelephonyStatusextendsActivity

{

ListViewshowView;

//声明代表状态名的数组

String[]statusNames;

//声明代表手机状态的集合

ArrayListstatusValues=newArrayList();

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.sim_main);

//获取系统的TelephonyManager对象

TelephonyManagertManager=(TelephonyManager)

getSystemService(Context.TELEPHONY_SERVICE);

//获取各种状态名称的数组

statusNames=getResources().getStringArray(R.array.statusNames);

//获取代表SIM卡状态的数组

String[]simState=getResources()

.getStringArray(R.array.simState);

//获取代表电话网络类型的数组

String[]phoneType=getResources().getStringArray(

R.array.phoneType);

//获取设备编号

statusValues.add(tManager.getDeviceId());

//获取系统平台的版本

statusValues.add(tManager.getDeviceSoftwareVersion()

!

=null?

tManager.getDeviceSoftwareVersion():

"未知");

//获取网络运营商代号

statusValues.add(tManager.getNetworkOperator());

//获取网络运营商名称

statusValues.add(tManager.getNetworkOperatorName());

//获取手机网络类型

statusValues.add(phoneType[tManager.getPhoneType()]);

//获取设备所在位置

statusValues.add(tManager.getCellLocation()!

=null?

tManager

.getCellLocation().toString():

"未知位置");

//获取SIM卡的国别

statusValues.add(tManager.getSimCountryIso());

//获取SIM卡序列号

statusValues.add(tManager.getSimSerialNumber());

//获取SIM卡状态

statusValues.add(simState[tManager.getSimState()]);

//获得ListView对象

showView=(ListView)findViewById(R.id.show);

ArrayList>status=

newArrayList>();

//遍历statusValues集合,将statusNames、statusValues

//的数据封装到List>集合中

for(inti=0;i

{

HashMapmap=newHashMap();

map.put("name",statusNames[i]);

map.put("value",statusValues.get(i));

status.add(map);

}

//使用SimpleAdapter封装List数据

SimpleAdapteradapter=newSimpleAdapter(this,status,

R.layout.line,newString[]{"name","value"}

newint[]{R.id.name,R.id.value});

//为ListView设置Adapter

showView.setAdapter(adapter);

}

}

3.2通讯卫士模块

publicclassMonitorPhoneextendsActivity

{

TelephonyManagertManager;

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.phone_main);

//取得TelephonyManager对象

tManager=(TelephonyManager)

getSystemService(Context.TELEPHONY_SERVICE);

//创建一个通话状态监听器

PhoneStateListenerlistener=newPhoneStateListener()

{

@Override

publicvoidonCallStateChanged(intstate,Stringnumber)

{

switch(state)

{

//无任何状态

caseTelephonyManager.CALL_STATE_IDLE:

break;

caseTelephonyManager.CALL_STATE_OFFHOOK:

break;

//来电铃响时

caseTelephonyManager.CALL_STATE_RINGING:

OutputStreamos=null;

try

{

os=openFileOutput("phoneList",MODE_APPEND);

}

catch(FileNotFoundExceptione)

{

e.printStackTrace();

}

PrintStreamps=newPrintStream(os);

//将来电号码记录到文件中

ps.println(newDate()+"来电:

"+number);

ps.close();

break;

default:

break;

}

super.onCallStateChanged(state,number);

}

};

//监听电话通话状态的改变

tManager.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);

}

}

3.3文件管理模块

publicclassFileManagerActivityextendsActivity{

privateFileServicefileService;

TabListenerlistener=newTabListener(){

@Override

publicvoidonTabUnselected(Tabtab,FragmentTransactionft){

}

//标签被选中的时候触发这个方法

@Override

publicvoidonTabSelected(Tabtab,FragmentTransactionft){

intposition=tab.getPosition();//标签的索引

//tab.getText().toString();//标签的文本标题

switch(position){

case0:

try{

fileService.getFiles(0);

}catch(Exceptione){

e.printStackTrace();

}

break;

case1:

try{

fileService.getFiles

(1);

}catch(Exceptione){

e.printStackTrace();

}

break;

case2:

//弹出窗口,让用户输入新建文件夹的名称

break;

case3:

//粘贴逻辑

break;

}

}

@Override

publicvoidonTabReselected(Tabtab,FragmentTransactionft){

}

};

privatestaticfinalintITEM_CREATE=1;

privatestaticfinalintITEM_COPY=2;

privatestaticfinalintITEM_PAST=3;

privatestaticfinalintITEM_DELETE=4;

privateDataServiceservice;

privateActionBarbar;

privateListViewlistView;

privateTextViewpathView;

privateButtonbutton;

privateListlist;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_file_manager);

listView=(ListView)findViewById(R.id.listView);

pathView=(TextView)findViewById(R.id.currentPath);

service=newDataService();

button=(Button)findViewById(R.id.button);

fileService=newFileService();

try{

initListView("/");

}catch(Exceptione){

e.printStackTrace();

}

initActionBar();

initEvents();

}

privatevoidinitEvents(){

//给每一个Item添加点击事件

listView.setOnItemClickListener(listener1);

//界面上每一个视图组件都可以使用上下文菜单

registerForContextMenu(listView);

}

@Override

publicvoidonCreateContextMenu(android.view.ContextMenumenu,Viewv,android.view.ContextMenu.ContextMenuInfomenuInfo){

menu.add(1,ITEM_CREATE,0,"新建");

menu.add(1,ITEM_COPY,1,"复制");

menu.add(1,ITEM_PAST,2,"粘贴");

menu.add(1,ITEM_DELETE,2,"删除");

};

@Override

publicbooleanonContextItemSelected(MenuItemitem){

//触发上下文菜单的组件

AdapterContextMenuInfoinfo=(AdapterContextMenuInfo)item.getMenuInfo();

intposition=info.position;

intitemId=item.getItemId();

switch(itemId){

caseITEM_CREATE:

button.setEnabled(true);

break;

caseITEM_COPY:

button.setEnabled(true);

break;

caseITEM_PAST:

button.setEnabled(true);

break;

caseITEM_DELETE:

booleanflag=doubleCheck();

break;

}

returntrue;

}

privatebooleandoubleCheck(){

finalResultres=newResult(false);

Builderbuilder=newBuilder(this);

builder.setTitle("警告");

builder.setMessage("你确定删除吗?

");

builder.setPositiveButton("确认",newOnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhich){

//匿名内部类在使用外部作用域的变量的时候,不能修改这个变量

res.setFlag(true);

}

});

builder.setNegativeButton("取消",null);

returnres.isFlag();

}

publicvoidpast(Viewv){

button.setEnabled(true);

}

privateOnItemClickListenerlistener1=newOnItemClickListener(){

publicvoidonItemClick(android.widget.AdapterView

>parent,Viewview,intposition,longid){

com.jsu.mobilesafe.bean.FileItemitem=list.get(position);

Stringpath=item.getFilePath();

try{

initListView(path);

}catch(Exceptione){

e.printStackTrace();

}

};

};

privatevoidinitListView(Stringpath)throwsException{

list=service.getFiles(path);

MyAdapteradapter=newMyAdapter(this,R.layout.list_item,list);

//绑定适配器

listView.setAdapter(adapter);

pathView.setText(path);

}

privatevoidinitActionBar(){

bar=getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

for(inti=0;i

addTab(Constants.TABS_TITLE[i]);

}

}

privatevoidaddTab(Stringtitle){

Tabtab=bar.newTab();

tab.setText(title);

tab.setTabListener(listener);

bar.addTab(tab);

}

}

3.4发送短信模块

publicclassSendSmsextendsActivity

{

EditTextnumber,content;

Buttonsend;

SmsManagersManager;

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.sendsms_main);

//获取SmsManager

sManager=SmsManager.getDefault();

//获取程序界面上的两个文本框和按钮

number=(EditText)findViewById(R.id.number);

content=(EditText)findViewById(R.id.content);

send=(Button)findViewById(R.id.send);

//为send按钮的单击事件绑定监听器

send.setOnClickListener(newOnClickListener()

{

@Override

publicvoidonClick(Viewarg0)

{

//创建一个PendingIntent对象

PendingIntentpi=PendingIntent.getActivity(

SendSms.this,0,newIntent(),0);

//发送短信

sManager.sendTextMessage(number.getText().toString(),

null,content.getText().toString(),pi,null);

//提示短信发送完成

Toast.makeText(SendSms.this,"短信发送完成",8000).show();

}

});

}

}

 

三、总结和分析

本次课程设计,经过一周时间的指导学习,我们设计出了课程设计Android作品,并成功答辩通过。

我们的

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

当前位置:首页 > 高等教育 > 工学

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

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