基于Android平台的未接来电自动回复软件-开发说明资料_第1页
基于Android平台的未接来电自动回复软件-开发说明资料_第2页
基于Android平台的未接来电自动回复软件-开发说明资料_第3页
基于Android平台的未接来电自动回复软件-开发说明资料_第4页
基于Android平台的未接来电自动回复软件-开发说明资料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android平台的未接来电自动回复软件开发说明书书目1项目背景 32需求分析 42.1软件需求分析 42.2功能需求 43项目描述 53.1软件适用版本: 53.2测试机配置: 53.3完成时间: 54流程 55模块设计 66运用过程 76.1开机: 76.2操作界面: 76.3操作过程: 86.4menu菜单: 86.5后台操作: 96.6退出: 97软件主要包含的文件 97.1Java编程文件: 97.2res_layout下的文件: 97.3res_value下的字符串赋值文件: 107.4系统配置文件: 108主要的代码极其实现的流程 101项目背景随着人们生活和工作的节奏越来越快,所接收到的来电的次数也越来越多,然而变的越来越劳碌的人们很难始终将手机带在身边,而且在某种场合下(如:开会,洗浴,开车等),虽然有来电但是不能与时的接听。在这中状况下,假如某款手机软件可以让呼叫者与时的知晓用户所处的状态或留言,就可以降低不必要的误会。目前,市场上还短暂没有可以实现此类功能的应用软件,因而开发出一款有未接来电时可以自动回复的手机软件具有极其重要的意义。Android是一种以Linux为基础的开放源代码的操作系统,主要运用于手机等便携设备,具有丰富的UI控件和多种功能强大的应用组件,有超强的用户体验,越来越多的手机用户运用android系统的手机,截止到2012年7月,Android占全球智能手机操作系统市场的59%的份额,中国市场占有率为76.7%。本项目正式基于Android系统来设计并实现未接来电自动回复功能的。2需求分析2.1软件需求分析进行应用的设计,首先要对应用的目标、需求和功能制定和选择一个较好的应用方案,从而开发出一款合理的优化的应用软件。随着社会的不断发展,人际交往变得更加的亲密,越来越多的人因不能与时的接听到电话而苦恼,也有越来越多的人因不想接听某些来电而必需接听而苦恼,如此一款在用户劳碌时可以自动挂断电话并将之前设定好的内容以短信形式回复给呼叫者的软件显得特别有必要。随着人们生活和工作的节奏越来越快,所接收到的来电的次数也越来越多,然而变的越来越劳碌的人们很难始终将手机带在身边,而且在某种场合下(如:开会,洗浴,开车等),虽然有来电但是不能与时的接听。在这中状况下,假如某款手机软件可以让呼叫者与时的知晓用户所处的状态或留言,就可以降低不必要的误会。目前,市场上还短暂没有可以实现此类功能的应用软件,因而开发出一款有未接来电时可以自动回复的手机软件具有极其重要的意义。需求分析是在于弄清用户对于应用软件的需求。在当今这个快节奏的社会中,许多的场合下,如开会,上课等,须要手机不能发出声音,可以有振动用来提示用户,而且此时虽然有电话打进来但是不能与时的接听电话,这样的话就须要首先将来电自动的挂断,挂断之后,呼叫者不知为何电话被挂断可能会产生误会,这时就须要能立即让呼叫者知道用户此时所处的状态,这时将事先编辑好的内容以短信的形式发给呼叫者。当呼叫者连续呼叫时,这时就须要一个回复周期,即在回复周期内,无论呼叫者呼叫多少次,用户将只会发送一条说明短信。当用户不想对全部的号码都回复,而只对电话簿中特定的号码进行回复,那么就有电话簿比对功能。当用户劳碌完之后,须要应用来提示他此时有未接来电,这次应用的某个按钮上的字体会变成红色,点击该按钮后就可以跳转到通话记录,从而查看未接来电2.2功能需求功能列表:编号功能名称功能说明1手机静音当应用开启后,手机被设置为静音模式2自动挂断当有来电时,应用将其自动挂断3自动回复短信将编辑框中的内容以短信的形式回复给呼叫者4回复周期在一个周期时间内,同一号码无论呼叫了多少次都只回复一条短信5电话簿对比只有电话簿中被选中的号码打来电话时才会回复短信6未接来电提示与查看当有未接来电时,一个特定的按钮上的字会由黑色变成红色,当点击该按钮后会跳转到通话记录界面,查看完后按钮上字体颜色变为黑色3项目描述3.1软件适用版本:Android2.1与以上版本的Android操作系统的手机3.2测试机配置:机型:酷派8810手机系统版本:android2.2手机屏幕辨别率:320*480屏幕尺寸:3.5寸3.3完成时间:2012年8月28日4流程软件的主要工作流程如图1所示图1.软件的主要工作流程5模块设计软件模块结构如图2所示图2.软件模块结构6运用过程6.1开机:当点击应用的图标后,应用便进入开机界面,开机界面为:Android的机器人logo,并附一行:“HohaiAT出品”。该行字表示该应用是由河海高校AndroidTeam完成6.2操作界面:当开机完成后便进入该应用的操作界面,该界面中须要操作以下几个控件(从上到下按其排布描述):6.2.1最上面的是用来输入自动回复时回复的短信的内容,并且该控件在默认的状况下里面的内容为“现在正忙,稍后给您回复”6.2.2紧随着的是用于输入回复的周期,即在多少分钟内,无论一个号码打来了多少次只回复一条短信,该回复周期默认为2分钟6.2.3随后是两个单选按钮,第一个单选按钮被选中时起到的效果是“开启电话簿对比功能”,其次个单选按钮被选中时起到对电话簿联系人进行全选的功能,而且只有当第一个单选按钮被选中的状况下,其次个单选按钮才能被选,否则其次个单选按钮就会始终处于灰暗不行选状态6.2.4紧随着的是个按钮,该按钮上写着“点击从电话簿中添加号码”,当按下这个按钮后就会弹出一个列表框,这个列表内的内容为该手机上的电话簿的内容,可以从中选择要回复的对象(该选择为多选),而且这个按钮在默认状况下是不行点击的,只有在第一个单选按钮被选中时,此按钮才才能被点击6.2.5下面的是一个按钮,这个按钮上面写着“启动自动回复”,当点击该按钮后,自动回复功能就开启了,而且按钮上的字变为“关闭自动回复”6.2.6最下面的还是一个按钮,该按钮上写着“点击查看未接来电”,当开启自动回复且有来电时,该按钮上的字会由黑色变成红色,以提示用户此时有未接来电,点击该按钮会跳转到通话记录界面,以查看未接来电6.3操作过程:6.3.1在自动回复的内容编辑框内输入自动回复短信的内容6.3.2输入回复的周期,即即在多少分钟内,无论一个号码打来了多少次只回复一条短信,该回复周期默认为2分钟6.3.3选择是否点击“是否开启电话簿对比功能”的按钮:假如不选择,那么启动自动回复后,对待全部来电号码都会自动回复假如选择,那么下面选择是否点击“对电话簿联系人进行全选”的按钮:.1假如选择全选按钮,那么应用启动后,来电号码只要是电话簿中的号码,那么都将进行自动回复.2假如不选择全选,那么就点击“点击从电话簿中添加回复号码”的按钮,然后从弹出的列表中选择要回复的号码,这样的话,只有当来电号码是被选中的号码,应用才会进行自动回复6.3.4点击“启动自动回复”按钮,这样service就起先启动,并且手机的响铃模式被设为静音模式,当有来电时,应用会自动将电话挂断,然后推断该来电号码与之前的设置是否符合,假如符合,就将回复短信6.4menu菜单:当点击手机的menu键时,应用的主界面底端会出现一个含有四个选项的菜单栏,分别是“关于”,“帮助”,“后台”,“退出”“关于”:当点击该选项时,主操作页面会跳转到一个新的页面,新的页面的内容为有关于该应用的一些信息,即应用名称,团队名称,指导老师,作者,所在学校,联系方式等,点击弯箭头返回键便可回到主操作界面“帮助”:点击该选项时,主操作界面会跳转到一个新的界面,该新界面上的信息为该应用的运用方法“后台”:点击该选项时,应用将在后台运行“退出”:点击该选项时,应用将从运行状态退出6.5后台操作:点击手机上的menu键,在出现的菜单中选择“后台”选项,或者点击home键,这两种方法都可使该应用在后台运行6.6退出:点击手机上的menu键,在出现的菜单中选择“退出”选项,或者点击手机上的弯箭头退出键,这两种方法都可是应用退出运行,此时service停止工作7软件主要包含的文件7.1Java编程文件:(含以下三个文件包):(a):该包主要放置界面文件,含有以下四个界面文件:(1)About.java:该文件是用来限制当点击menu中的“关于”选项时跳转的界面(2)Help.java:该文件是用来限制当点击menu中的“帮助”选项时跳转的界面(3)mainActivity.java:该文件是用来限制主操作界面的显示(4)startActivity.java:该文件是用来限制开启应用时界面的显示(b):该包主要放置监听文件,含有以下一个文件:(1)ReceiverOfCall.java:该文件是用来注册监听器,用来监听来电状况(c):该包主要用来放置service文件,含有以下一个文件:(1)mainService.java:该文件为服务程序,该应用的主要功能由该文件完成7.2res_layout下的文件:(a)main.xml:启动应用时界面的布局文件(b)rcabout.xml:选择menu中“关于”项时跳转的界面的布局文件(c)rchelp.xml:选择menu中“帮助”项时跳转的界面的布局文件(d)start.xml:操作界面的布局文件7.3res_value下的字符串赋值文件:(a)strings.xml:该文件中是键值对的形式,是对字符串的负值,其形如:<stringname=”app_name”>自动回复</string>7.4系统配置文件:(a)AndroidManifest.xml:该文件中含有对activity,service等文件的注册,和一下权限的设置8主要的代码极其实现的流程8.1当点击应用的图标时,应用就将启动8.2因为在配置文件AndroidManifest.xml中设置了如下语句:<activityandroid:name=".activity.startActivity" android:label="@string/app_name"> <intent-filter> <actionandroid:name="ent.action.MAIN"/> <categoryandroid:name="ent.category.LAUNCHER"/> </intent-filter> </activity>所以开机时首先启动startActivity这个文件8.3在startActivity代码中首先执行语句setContentView(R.layout.main);,这个语句的意思是该activity文件的布局运用main.xml文件的布局方式,而在main.xml文件中android:background="@drawable/dukeb"表示该布局为界面背景是一张图片,该图片存在res_drawable-mdpi中,是一个android机器人的logo,下面有行字:“HohaiAT出品”8.4所以运行到此时,界面显示的是一张图片,图片中有个android机器人的logo,然后下面有行“HohaiAT出品”的字8.5在界面展示这张图片的同时,startActivity接着执行,起先执行t2=newgetContacts2();t3=newjump();t2.start();t3.start();即开启两条线程,线程getContacts2()的作用为读取电话簿中电话号码总的条数,线程jump()的作用为使首个出现的界面最少持续5秒钟,然后等待读取电话簿内容的完成8.6线程getContacts2()把电话号码的总条数得到后就去启动getContacts()线程,该线程就起先把电话簿的详细内容存入数组aa和bb中,等到读取完成后就会将isFinish置为true(aa数组是包含姓名和号码,bb数组只含号码)8.7当isFinish置为true后,jump线程等待结束,于是就会执行如下代码:Intentintent=newIntent();Intent.setClass(startActivity.this,mainActivity.class); startActivity(intent);这样的话就可以由原界面跳转到主的操作界面代码: startActivity.this.finish(); break;可以使原来的界面消逝掉8.8现在就起先执行mainActivity.class,从而进入了主操作界面的显示8.9语句publicstaticStringcontent="现在正忙,稍后给您回复";publicstaticStringcontent2="2";autoAckTextView.setText(content);timeTextView.setText(content2);使得“回复内容”编辑框与“回复周期”的编辑框中的默认内容分别为:回复内容:“现在正忙,稍后给您回复”回复周期:2(单位:分钟)8.10假如用户想自定义“回复内容”和“回复周期”,可以点击编辑框进行删除和编写,代码中的语句content=autoAckTextView.setText.getText().toString();content2=timeTextView.setText.getText().toString();可以使程序获得在编辑框的输入8.11下面用户就要确定是否选择“开启电话簿对比”单选按钮:(a)当未选中的状况下,由语句Check2.setEnabled(false);Contact01.setEnabled(false);可使下面紧跟的一个单选按钮“是否全选”和再下面的“点击从电话簿中选择联系人”按钮处于不行选的状态mainService.isOnCheck=false;这个语句使得service中的startcommond()方法中在有来电进行处理时不进行号码的比对,这样无论是什么号码来电都会进行短信自动回复(b)当选中的状况下,由语句Check2.setEnabled(true);Contact01.setEnabled(true);这时单选按钮“是否全选”和再下面的“点击从电话簿中选择联系人”按钮就可以被选中mainService.isOnCheck=true;这时service中的startcommond()方法中在有来电时会与电话簿中的号码进行对比,只有被选中的号码才会回复8.12下面就起先选择是否“电话簿全选”单选按钮(a)若全选的话,在service中的startcommond()中就会将来电号码与电话簿中的号码进行比对,如下代码for(intj=0;j<cc.length;j++)if(Num.equals(cc[j])) b=false; break;该代码中的数组cc是用来存放被选中的号码,假如被全选的话,此时的cc数组中的值就为电话簿中的全部号码(b)若不全选的话,就点击“点击从电话簿中选择联系人回复”按钮,该按钮的监听部分有个AlertDialog对象,该对象可以弹出一个多选列表,列表的内容为startActivity.aa,即其内容为电话簿里的全部内容,当选完联系人后点击确定按钮,点击后就会将被选中的联系人的号码存放到cc数组中,这样的话有来电时就会再一次经过对比代码:for(intj=0;j<cc.length;j++)if(Num.equals(cc[j]))b=false;break;这样的话只要是被选中的号码都会回复短信8.13当点击“开启自动回复”按钮时,按钮会变成“关闭自动回复”,这时service起先启动,下面起先进入mainService.java文件(注:上面的5.2.11与5.2.12所说的都是在该按钮按下的状况,当没有按该按钮时,来电的话不会有什么改变)8.14当service启动时,首先执行onCreate()方法,通过this.registerPhoneListenner();语句注册了电话来电监听器注册的代码详细为:publicvoidregisterPhoneListenner(){ callReceiver=newReceiverOfCall(); IntentFilterintentFilter=newIntentFilter( "ent.action.PHONE_STATE");registerReceiver(callReceiver,intentFilter);然后就执行onStartCommand(Intentintent,intflags,intstartId)方法,因为当第一次执行service时,startId的值是1,而我们第一次执行时不须要做什么动作,所以通过if(startId!=1)推断,让其在第一次时什么也不做8.15然后这时监听器就等待电话打进来,当有电话打进来时就进入到了ReceiverOfCall.java这个BroadcastReceiver文件,如下的代码:switch(tm.getCallState()){ caseTelephonyManager.CALL_STATE_RINGING: newmainService().endCall(); intent.setClass(context,mainService.class); context.startService(intent); break;其中首先调用newmainService().endCall();来自动挂断电话,然后定义新的意图intent,由代码context.startService(intent);跳转到service中,service文件只有在第一次执行时才执行onCreate()方法,所以这次就干脆进入onStartCommand(Intentintent,intflags,intstartId)方法,这次startId的值为2,可以通过推断,然后执行onStartCommand中的代码8.16进入onStartCommand方法后就起先将调用方法mainActivity.turnColor();该方法的作用是将主操作界面最下面的“点击查看未接来电”按钮的字体变红,以提示用户此时有未接来电然后推断该来电号码是否符合之前设置的状况,即推断该号码是否在数组cc中,假如不在的话就不做任何的反应,假如在的话就推断该号码是否在phoneNum数组中(该数组中放置的是在回复周期内打来过的号码,当进入下个回复周期时,这个集合里面的号码就会被删掉),假如在phoneNum数组中,说明在回复周期内已经打来过了,那么就什么也不做,假如不在这个数组中,那么就启动自动短信回复线程,并将该号码加入phoneNum数组Threadt2=newThreadPhone(); t2.start();8.17就进入ThreadPhone()线程,首先执行的代码为:replyFromPhone(MyIntent,bundle);这条代码的作用是回复短信下面执行代码:intminute=Integer.parseInt(mainActivity.getContent2()); Thread.sleep(minute*60000);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论