简易手机管家设计与实现.docx
《简易手机管家设计与实现.docx》由会员分享,可在线阅读,更多相关《简易手机管家设计与实现.docx(11页珍藏版)》请在冰点文库上搜索。
简易手机管家设计与实现
简易的手机管家的设计与实现
第一章绪论
1.1系统开发背景
随着现代通信行业的迅猛发展,手机几乎每个人都会有,人们的隐私越来越暴露,也给用户带来了诸多不便。
通过对市场的大量调查结合我们的专业知识,基于现在最热门的手机智能操作系统(Android)开发了一款手机管家,赋予了它管理手机文件和电话骚扰拦截功能。
第二章需求分析
2.1可行性分析
2.1.1技术可行性
很多博客中都有很多关于手机管家的介绍,我们身边有很多学习Android的老师同学可以帮助我们。
2.1.2经济可行性
我们是自行开发的系统,成本可以忽略不计,还有后期维护的费用也相对比较低廉。
2.1.3操作可行性
软件编程完成后可直接在手机上测试运行
2.1.4法律可行性
本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。
2.2业务流程
用户使用手机管家软件可以管理文件和骚扰拦截,用户系统的业务用
第三章概要设计
3.1文件管理
1.首先是获取当前是否是根目录,然后把文件的路径设置给我们要显示的View。
2.然后用一个ArrayList来装我们目录下的所有的文件或者文件夹。
3.把这个文件夹的父类装到我们的列表中去,然后把这个文件夹下的子文件都拿到,也装在列表中,然后调用Adapter显示出来。
3.2骚扰拦截
其实在android在1.1版本后就已经把Phone类的相关API给隐藏起来了,想要用代码实现挂断电话的功能,就必须通过AIDL才行,然后利用反射来使用其方法
1.在程序中新建一个包,包名必须为:
com.android.internal.telephony,因为使用aidl。
2.要监听电话状态,当来电时,检测来电号码是否符合拦截标准(这个拦截标准是我们自己定的,我们拦截指定号码如实现一个黑名单的功能)
第四章详细设计与系统实现
4.1模块设计
本软件分为两个功能模块:
文件管理、骚扰拦截
如图4-1所示
图4-1
4.1.1文件管理的详细设计
通过获取文件的根目录对文件进行打开、重命名、删除的操做
如图4-2所示
图4-2
4.1.1.1打开文件
打开文件需要知道文件的类型,我们通过方法getMIMEType()获取文件类型代码如下:
privateStringgetMIMEType(Filefile){
Stringtype="";
Stringname=file.getName();
Stringend=name.substring(name.lastIndexOf(".")+1,name.length()).toLowerCase();
if(end.equals("m4a")||end.equals("mp3")||end.equals("wav")){
type="audio";
}
elseif(end.equals("mp4")||end.equals("3gp")){
type="video";
}
elseif(end.equals("jpg")||end.equals("png")||end.equals("jpeg")||end.equals("bmp")||end.equals("gif")){
type="image";
}else{
type="*";
}
type+="/*";
returntype;
}
打开文件需要调用系统应用,通过方法openFile()方法里Intent.FLAG_ACTIVITY_NEW_TASK与Intent.ACTION_VIEW实现,代码如下:
privatevoidopenFile(Filefile){
Intentintent=newIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
Stringtype=getMIMEType(file);
intent.setDataAndType(Uri.fromFile(file),type);
try{
startActivity(intent);
}catch(Exceptione){
Toast.makeText(this,"未知类型,不能打开",Toast.LENGTH_SHORT).show();
}
}
4.1.1.2重命名文件
获取文件的根目录,进行重命名
如图4-3所示
图4-3
获取文件的根目录file.getParentFile().getPath()然后判断文件是否可读再进行命名操作,代码如下:
if(newFile.exists()){
//排除没有修改情况
if(!
modifyName.equals(file.getName())){
//弹出对话框
newAlertDialog.Builder(MainFile.this)
.setTitle("注意!
")
.setMessage("文件名已存在,是否覆盖?
")
.setPositiveButton("确定",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
if(file.renameTo(newFile)){
showFileDir(fpath);
displayToast("重命名成功!
");
}else{
displayToast("重命名失败!
");
}
}
})
.setNegativeButton("取消",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
}
}.show();
}
}else{
if(file.renameTo(newFile)){
showFileDir(fpath);
displayToast("重命名成功!
");
}else{
displayToast("重命名失败!
");
}}
4.1.1.3删除文件
判断文件是否存在然后删除
如图4-4所示
图4-4
通过File类中的delete()方法进行删除,代码如下:
if(file!
=null)
{
try
{
Filefile2=file;
file2.delete();
result=true;
}
catch(Exceptione)
{
e.printStackTrace();
result=false;
}
}
4.1.2骚扰拦截的详细设计
对来自黑名单中的电话进行拦截
如图4-5
图4-5
4.1.2.1保存需拦截的号码
通过SharedPreferences把要拦截的号码存起来,代码如下:
SharedPreferencessp=context.getSharedPreferences("phone",Context.MODE_PRIVATE);
sp.edit().putString(key,value).commit();
4.1.2.2监听电话状态进行拦截
通过BroadcastReceiver采用广播机制向全体广播监听手机电话未接听、通话中、挂断三种状态,在未接听的状态中核对黑名单电话进行拦截,代码如下:
Methodmethod=clazz.getDeclaredMethod("getITelephony",(Class
>)null);
//设置可访问
method.setAccessible(true);
//执行方法
ITelephonyiTelephony=(ITelephony)method.invoke(tm,(Object)null);
//判断
//得到号码
Stringn=PrefUtil.getString(context,"number","").trim();
if(n.equals(number)){
iTelephony.endCall();
}
第五章系统测试以及软件安装
5.1测试报告
软件在中兴手机型号为NX513J,android版本为5.1.1中测试通过,文件管理模块在测试打开文件的时候部分文件打不开,我们通过下载别的应用,再用软件打开就成功了,原来此型号手机并没有预装打开所有软件的应用
骚扰拦截模块测试过程通过,只要设置好黑名单电话后,对方拨打电话就会提示在通话中,移除黑名单后则恢复正常。
结论
通过本次课程设计我们对android的知识有了系统的了解,也增强动手实践的能力,我们也学会了怎么快速查阅资料,怎么解决问题的能力。
本次课程设计非常感谢我们的老师给予我们的帮助。
参考文献
1. 杨云君. Android的设计与实现[M]. 北京:
机械工业出版社,2017:
5-65.
2. 李刚.疯狂Android 讲义[M]. 北京:
电子工业出版社,2013:
12-87.
3.赛奎春.JAVA工程应用与项目实践[M].机械工业出版社,2002.8:
23-294
4.姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008,17(11):
110-112
5. (美)阿诺德,KenArnold,等.Java程序设计语言[M].北京:
人民邮电出版社,2006
6.RetoMeier.ProfessionalAndroid2ApplicationDevelopment[M].Birmingham,UK:
Wrox,2010
7.杨丰盛.Android技术内幕.系统卷[M].北京:
机械工业出版社,2011
8.BruceEckel.Java编程思想[M].机械工业出版社,2003.10:
1-378