版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、兰 州 商 学 院本科生毕业论文(设计)论文(设计)题目: 基于Android系统的来 电防火墙设计与实现 学 院、 系: 信息工程学院 计算机科学与技术系 专 业 (方 向): 电子信息工程 年 级、 班: 2007级电子信息工程 学 生 姓 名: 刘兴永 指 导 教 师: 李海燕 2011 年 05 月 20 日声 明 本人郑重声明:所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。本毕业论文(设计)成果归兰州商学院所有。 特此声明
2、0; 毕业论文(设计)作者签名: 年 月 日 基于Android系统的来电防火墙设计与实现摘 要本设计是基于Android系统的智能手机来电防火墙,主要功能是过滤来电号码。该系统包括来电拦截、拦截 的添加和修改、拦截 来电时的提示方式、拦截 的回拨。本系统作为手机来电处理的主要功能之一,它的设计直接影响到手机的性能和友好性,另外,Android是一个开放的操作系统,它已被众多的手机厂商采用,因此此系统可以应用于所有以Android为操作系统的智能手机上。此系统已经过严格测试,运行稳定、快捷,即将应用到本公司的产品上。关键词Android Activ
3、ity Intent phoneManagerABSTRACTThe design is based on the Android Smart Phones that calls mobilephone firewall .The main function is to filter incoming phone number. The system includes call blocking, intercepting calls to add and modify, indicate ways to phone calls, and the phone back. The phone c
4、all processing system is designed to affect the performance and amity directly as one of the main functions, and the other way, Android is an free operating system, it has been used by a large number of mobile phone manufacturers , so it can be applied all the Android operating system for the Smart
5、Phone. This system has been rigorously tested, stable, fast and will be applied to product promotion very soon. Key Words Android,Activity,Intent,Phonemanager目 录一、绪论1(一)研究背景及意义1(二)相关智能手机平台的现状分析11、Symbian 平台22、Windows Mobile平台23、PALM平台34、Mac OS x平台35、RIM 平台46、OMS平台57、J2ME平台5(三)ANDROID的系统介绍6(四)ANDROID
6、平台与其它平台的比较8(五)本文的主要内容10二、需求分析10(一)功能分析11(二)性能需求12(三)数据需求12(四)安全需求12三、系统设计13(一)功能框架13(二)布局规划及互动流程13(三)系统实现流程图14(四)数据存储实现151、设计数据库及表结构162、设计SharePreference存储16(五)安全需求设计16(六)ANDROID类库171、 管理类 Telephonymanager172、 监听类 PhoneStateListener183、 服务类 ServiceState184、短信管理类 SmsManager185、INTENT19四、系统实现20(一)主界面及
7、菜单功能的实现20(二)黑名单列表TAB22(三)添加拒接来电23(四)设置TAB23(五) 状态监听24五、结论25参 考 文 献26致 谢27附 录28基于Android系统的来电防火墙设计与实现一、绪论(一)研究背景及意义第三代数字通信(3G)技术的广泛应用,为智能手机用户带来了更快的数据传输速率,智能手机不再仅仅是语音通讯的网络终端,还将成为互联网的通信终端。另外,智能手机正一步一步走进普通人的生活,这意味着很多的人将参与到互联网中。然而,智能手机的普及也给人们的生活带来了一些令人烦恼的事情,例如:匿名的短信和 及骚扰短信和骚扰 ,还有近几年来比比皆是的 诈骗事件。基于以上的分析,设计
8、来电防火墙是非常具有实用价值的。现在的手机生产商众多,而操作系统不开源,对各种应用的支持不是很好。对运营商来讲,往往需要对某类手机进行单独开发,成本无形增加很多。实现开源后,与运营商结成联盟,将导致成本降低。目前,操作系统的成本占15%20%,这对消费者是一个很大的压力,把成本降到零,这对消费者和运营商都有好处。为此,Google于2007年11月推出了一个专门为移动设备设计的软件平台Android。它的出现打破了这些格局,还提供给普通开发者非常灵活的设计平台。本公司采用的开发平台是Andriod平台,本设计作为公司项目的一部分,因此也是基于此平台。(二)相关智能手机平台的现状分析智能手机平台
9、之争已进入群雄争霸的时代,新势力的不断崛起,使其不断进步。因此,对智能手机平台的研究及其发展是当前移动计算机技术发展中最为活跃的领域。现在对相关智能手机平台的现状做了如下分析。1、Symbian 平台Symbian OS1(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研究手机平台。Symbian平台在智能移动终端上拥有强大的应用程序以及通信能力,这都要归功于它有一个非常健全的核心强大的对象导向系统、企业通用标准通信传输协议以及完美的Sun Java语言。Symbian机型所采用的硬件配置较低,且各类机型采用的处理器主频较低
10、,虽然平台可以使其获得较高的处理效能,但是在多媒体等方面的表现依然不如人意。在多媒体方面,Symbian OS对主流的媒体格式的支持性较差。Symbian OS带来了一种限制性的发展屏障。各个平台之间第三方软件不兼容,给用户带来了一定的不便。版本之间兼容性差也是Symbian OS需要改进的一个地方,每当新版本Symbian OS发布并有产品面世时,系统的兼容性便成了其发展的一个大敌。2、Windows Mobile平台Windows Mobile1 系列平台是在微软计算机的Windows 平台上变化而来的,因此,它们的操作界面非常相似。Windows Mobile 系列平台功能更强大,大多具
11、备了音频、视频文件播放、上网冲浪、MSN聊天、电子邮件收发等功能。而且,支持该平台的智能手机多数都采用了英特尔嵌入式处理器,主频比较高。另外,采用该平台的智能手机对硬件配置(如内存、存储卡容量)上的要求比采用其它平台的智能手机要高出许多,因此性能比较强劲,操作起来速度比较快。但是,此系列手机也有一定的缺点,如因配置较高、功能多而产生耗电量大、电池续航时间短、硬件成本高等缺点。3、PALM平台PALM1 是3Com公司的Palm Computing部门开发的一种32位的嵌入式平台,它的操作界面采用触控式,差不多所有的控制选项都排列在屏幕上,使用触控笔便可进行所有操作。作为一套极具开放性的平台,开
12、发商向用户免费提供PALM平台的开发工具,允许用户利用该工具在PALM平台的基础上编写、修改相关软件,使支持Palm的应用程序丰富多彩、应有尽有。由于Palm一直遵循Less More(少就是多)这一理念去设计,所以,与微软推出的平台要占有大量系统资源和存储容量不同的是,它本身所占的内存极小,基于PALM平台编写的应用程序所占的空间也很小,通常只有几十KB,所以基于PALM平台的掌上电脑虽然只有几兆的内存却可以运行众多的应用程序。但是,这么一来,它的功能就没有那么多,例如不具有录音功能、MP3播放功能等,如果你需要使用这些功能,就需要另外加入第三方软件或硬件设备方可实现。另外,对于中国用户而言
13、,它有一个不足之处是,它的操作平台起初在中国销售的产品仍然要使用中文外挂平台,有相当部分依然是以英文界面为主,在一定程度上影响了基于PALM平台的产品在中国市场的大面积进入。还有就是娱乐性比较差,操作比较困难,新手难于上手。4、Mac OS x平台苹果手机的平台(Mac OS X)近几年也是智能手机的一个新亮点,它已超过微软跃居手机行业第二。Mac OS X 使用基于BSD Unix的内核,并带有Unix风格的内存管理和抢占式多任务处理,大大改进内存管理,允许同时运行多款软件,这实质上消除了一个程序崩溃导致其它程序崩溃的可能性。它还具有极度华丽的图形用户界面、极高的运行效率和稳定安全性。但是,
14、这些新特征需要更多的系统资源,按官方的说法Mac OS X只能支持G3以上的新处理器(它在早期的G3处理器上执行起来比较慢)。其中最具代表的平台是iPhone,它是Mac OS 10.5的精简版。iPhone使用基于ARM架构的中央处理器,而不是苹果的麦金塔计算机使用的x86处理器(就像以前的PowerPC或MC680x0),它使用由PowerVR视屏卡渲染的OpenGLES1.1。因此,Mac OS X上的应用程序不能直接复制到iPhone OS上运行。它们需要针对iPhone OS的ARM重新编写。还有就是苹果至今仍没有任何让 iPhone运行Java的计划。5、RIM 平台黑莓(Blac
15、kberry)是智能手机,它是加拿大RIM公司推出的一种移动电子邮件系统终端,其特色是支持推动式电子邮件、手提 、文字短信、互联网 、网页浏览及其它无线咨询服务。它采用RIM平台,而RIM平台基于Java平台,运行极为稳定流畅,对Java软件兼容能力强,也有不错的软件资源。采用了标志性的滚轮设计,操作时非常方便。技术上来说,BlackBerry是一种采用双向寻呼模式的移动邮件系统,兼容现有的无线数据链路。BlackBerry.nterpriseSolution是一种领先的无线解决方案,可供移动专业人员用来实现与客户、同事和业务运作所需的信息链接。这是一种经证明为有效的优秀平台,它为世界各地的移
16、动用户提供了与大量业务信息和通信的安全的无线连接。BlackBerry安全无线延伸到移动商业用户的企业电子邮件账户,既使它们在办公室外,也可轻松处理邮件,就像从没有离开办公桌。用户可以在旅途中发送、接收、归档和删除邮件、并阅读电子邮件附件、支持格式有Microsoft Word、Microsoft Excel、Microsoft PowerPoint、AdobePDF、Corel WordPerfeet、HTML、ASCLL等等。BlackBerry解决方案的“始终在线”推入技术可以自动传递邮件,用户不需要执行任何操作就可接收通信,所以BlackBerry是移动电子邮件的巨无霸,比较适用于商务
17、人士,但在多媒体播放方面的功能非常弱。6、OMS平台为了推动移动互联网产业的发展,并保持中国移动对产业链的控制,在苹果iPhone 以及谷歌Android平台的启发下,中国移动携联想推出自己的手机平台OMS(Open Mobile System)。OMS同样是基于Linux内核,采用Android源代码,但在业务层和此前的谷歌手机完全不一样,OMS将集成大量中国移动的业务。显然中国移动并不愿意把采用该平台的手机叫Gphone或谷歌手机,而是使用了新代号Ophone。7、J2ME平台J2ME(Java Platform micro Edition)是Java语言专门针对嵌入式电子产品的版本,应用
18、在移动 、PDA、电视机顶盒以及其它资源受限的设备上,J2ME是目前移动设备上使用最广泛的开发平台。J2ME平台由多种配置、简表和可选包组成。可以发现J2ME的应用是建立在JVM(或KVM)之上,而主机操作系统是位于J2ME平台之外。这样的设计一方面提供了跨操作系统的特性,主机操作系统可以是Symbian、Windows Mobile、和Linux,目前还不支持iPhone Mac OS 。另一方面J2ME虽然提供了统一的开发平台,但是JVM的安全机制让J2ME的应用程序不能调用本地系统资源。(三)ANDROID的系统介绍Android系统是Google公司推出的一款开放平台,Android以
19、linux2.6为内核,系统稳定安全,应用程序使用Java语言来开发,缩短了软件开发周期,现在已经被许多的手机厂商采用。Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和一些关键的平台应用,拥有移动 工作所需的全部软件。Android最大特点在于它是一个开放的体系结构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android里面具有非常丰富的图形系统,提供对多媒体功能的支持和非常强大的浏览器。Android的主要特点体现在以下几点2:(1)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件
20、来使用,可以节省开发应用程序的心力及时间。(2)Dalvik虚拟机器:在Android平台上所使用的Java虚拟机,不是Sun公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容性的同时,针对移动手机进行了大幅度优化,占用资源更小,运行效率更高。(3)集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发的。WebKit是一个开源浏览器网页排版引擎。配合Android手机的功能,可以在浏览网页时,达到更好的效果。(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D和3D两个方面。在2D方面,An
21、droid提供了一套特有的类库(SGL);而在3D方面则是使用OpenGLES1.0(OpenGL for Embedded Systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。(5)SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的实际目标是嵌入式,目前已经在很多嵌入式产品中使用了它,它占用的资源很低。它能够支持Windows、linux、Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是
22、一个存储在单一磁盘文件中的完整数据库,占有空间只有250KB,但支持数据大小最高达2TB。虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库。其特点在于轻量性方面的设计结构,更适合在手机上使用。(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频和视频的支持,并支持“播放URI地址(即统一资源识别地址)”模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式。(7)GSM技术:Global System for Mobile Communication,即全球
23、移动通信系统,是第二代移动通信技术,其开发目的是让全球各地可以使用一个移动 网标准,让用户使用一部手机就能行遍全球。GSM技术是属于手机硬件方面的发展,也是在开发Android应用程序时可以突出的特点之一。(8)蓝牙、EDGE、3G和Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE是一种从GSM到3G附近的频段,该频段目前尚属无须许可的无线频段。其目前可使用的标准有两个,分别是IEEE和IEEE802.nb。这些通讯能力也是属于手机硬件方面的发展,也是在开发Android应用程序时可以突出的特点之一。(9)丰富的开发环境:A
24、ndroid SDK提供了相当完善的程序开发环境,其开发环境包括设备模拟器、调试工具、内存和性能检测等方面的评估功能,另外也提供可用于Eclipse IDE的开发插件界面。(四)ANDROID平台与其它平台的比较首先看一下Symbian,它存在着以下的致命不足:Symbian的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然Symbian非常成熟,但是基本上还带有浓厚的保守色彩,应用软件与我们日常的PC软件有较大的理念差异。再者Symbian与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。Android平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软件还是硬
25、件设计,几乎都是围绕着快捷的移动互联网应用所展开的,同时Android与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。与Android拥有相同属性的还有微软的Windows Mobile,然而臃肿的Windows平台饱受垢病,真正喜欢它的用户并不多。至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用程序。所有的东西都应该苹果自己设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了嵌入式系统以及完整的应用,但它干脆都不宣扬iPhone的软件设计,而是将iPhone作为一个包含软硬件卖点的手机产品出售。同样,苹
26、果式的奢华与时尚让iPhone大获成功,以至于成为手机市场的风向标。与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为业界所公认。自由软件高度活跃,错误可以被快速修改,新的应用和新的创意可以不断出现。自由的属性让Android的错误可以快速的修正,从而提高系统的可靠性与安全性。Android平台的另外一个优势是标准化和跨平台。作为开发平台,可以为任何手机厂商自由选择一厂商对代码做出修改,那么修改的结果必须迅速返回,确保系统的统一性。其次,Android的应用都基于Java开发,Java具有一次编写、到处运行的跨平台属性,换句话说,开发者只要编写一遍程序,就能够
27、实现在所有Android设备中运行,真正做到了硬件无关性,这显然大幅度降低了开发者的负担。再者,Android提供标准化的API和SDK开发包,手机厂商可以根据需要自行开发或收纳已有的程序,从而打造出富有特色的Android平台。这对手机厂商来说,它可以完全不管软件技术之内的问题,快速整合出适合自己的一套平台,然后将精力集中在硬件设计上面,可以在短时间内快速推出新品,对开发者来说,标准化的Android绝对是令人愉快的选择。Android和操作系统进行了紧密地整合,从而可以方便地使用操作系统的功能。并且从图形应用界面的开发上来看,Android可以使用配置文件来描述图形控件的布局,用Java代
28、码编写实际响应代码,比用AWT/Swing编写图形应用程序要方便得多。当然由于Android已经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。(五)本文的主要内容本文首先对目前的一些智能手机操作系统进行了介绍,并阐述了它们之间的差异。其次对系统的需求做了分析,包括功能分析、性能分析、数据分析、安全分析。随后论述了系统的主要功能,采用流程图的方式来表达使用者与Android应用程序的互动过程,并从互动过程中,引导出应用程序的画面布局和Activity类的规划。然后规划出幕前布局和幕后Activity,以此作为程序撰写的蓝图。最后设计了系统Activity之间
29、跳转算法和系统数据库,并论述了各功能模块的主要实现过程。二、需求分析本系统设计采用的开发环境为Windows下Google Android开发平台,所需软件有3:(1)(2) Eclipse (3) Google Android SDK(4) ADT (一)功能分析语音通信是手机一直不变的功能 ,然而来电防火墙就是专门针对那些骚扰 和用户不想接听的来电而设计的,它需要提供友好的界面、方便的用户操作界面,接收用户的各项操作并将这些操作转化成与之对应的命令,采用用户活动的方式完成各个服务逻辑流程,其功能需求主要包含以下内容:(1)来电拦截系统能够监听 状态的改变,判断是否有 呼入,然后判断此来电是
30、不是需要屏蔽的来电。(2)拒接来电的添加用户可以添加自己不想接听的 ,当此 呼入时,系统将进行相应的处理。(3)拒接来电的回拨当用户要呼叫存在拒接列表中的联系人时,可以运用此功能,而不需用户再次输入呼叫人的 号码。(4)编辑拒接联系人当拒接列表中的联系人的信息改变了,可以重新编辑拒接联系人的信息。(5)删除联系人当不想再将此联系人作为拒接的对象,就可以运用此功能将它删除。(二)性能需求手机应用程序需要提供良好的用户体验。良好的用户体验体现在以下几点:(1)界面友好用户界面简单直观,并且易于操作。(2)快速响应快速处理用户的输入或请求,对于有些需要较多时间的应用程序,可以在它处理时 ,给用户一个
31、提示,让用户知道程序还在运行中。(3)无缝性Android应用程序模型的构建是能够允许用户在不同的应用程序之间进行流畅的切换。所以当用户正在做一些其它的事情,如在接 或查看地图时,SMS服务每次都在短信收到时弹出一个对话框,这很快就会使用户崩溃,需要引入通知机制,来使用户能够自己控制。(三)数据需求(1)添加界面需输入需要拒接的来电号码。(2)开启应用程序时需要输入用户名和密码。(四)安全需求Android安全中的一个重要的设计是在默认情况下应用程序没有权限执行其它应用程序、操作系统或用户的有害操作。这些操作包括读/写用户的隐私数据。应用程序的进程是一个安全的黑盒子,它不能干扰其它应用程序,除
32、非给它声明权限。三、系统设计(一)功能框架在设计系统的功能框架时,主要分为显示需要拦截的号码、添加新的拦截号码、系统设置。系统功能模块如图3-1所示。图 3-1 系统功能模块(1)黑名单列表模块功能:显示存在于黑名单数据库中的联系人和联系人的 。(2)添加联系人功能:向黑名单数据库中添加新的联系人,同时在 本数据库中将对应的联系人删除。(3)设置模块功能:设置当黑名单数据库中的联系人来电时提示用户的方式,以及开启来电防火墙应用程序时用户密码的修改。(二)布局规划及互动流程一个系统通常会用多个画面来与使用者进行沟通。用Used Case 图来表达使用者与Android应用程序的互动过程,从互动过
33、程中,已导出应用程序的画面布局和Activity类的规划,互动过程如图 3-2所示。图3-2 用例图现在对系统中的未接列表、黑名单列表、添加、设置功能进行画面布局和规划。(三)系统实现流程图启动模拟器后,模拟器会自动加载指定的图片,然后进入主界面,并在主界面中把图显示出来,而且会根据屏幕的大小自动调整显示出的图片。然后在菜单栏中可以选择相应的标签,并进入相应的界面,如果想退出相应的界面,可以按菜单键的返回键回到主界面。现针对系统布局规划和互动,设计出相应的流程图如图3-3所示。 图 3-3 程序流程图(四)数据存储实现Android 提供了一些方式来存取数据2,4。一是文件方式:Android
34、可以将文件存储在设备或其它移动媒介上。二是数据库方式:Android有SQLite数据库的API。应用程序可以创建和使用SQLite数据库。三是网络方式:Android还支持使用网络存取数据的方式。除此之外,Android还可以向其它应用程序请求并获得数据。本系统采用SQLite数据库的方式来存取数据,它只有表格一种数据结构。在这里只需创建一张能保存需要拦截的联系人表,当然以后可以根据需求与功能的完善和增加,可以对数据库进行升级。1、设计数据库及表结构按照需求分析,设计数据库和表的结构如表3-1所示。表 3-1 blackcontact表的结构描述属性类型含义备注idINTEGER主键IDna
35、metext拒接联系人姓名numbertext拒接联系人号码备注text拒接联系人备注描述文字2、设计SharePreference存储SharePreference是Android提供用来存储一些简单配置信息的一种机制。针对此程序需要存储对应用程序的设置信息,其它类似的数据等需要的时候再添加。(五)安全需求设计(1)权限命名一个基本的Android应用程序没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中数据的有害操作。在应用程序需要时,可在Androidmanifest.xml文件中列举一个或更多的<uses-permission>标签来声明此权限。通过Android
36、mainfest.xml文件可以设置高级权限,用来限制访问组件或应用程序。所以如果需要访问某组件,需要在这里声明一个权限,现对跟本系统有关的组件权限作以下说明。 ()()期间要经过检查;如果调用者没有请求权限,那么会为调用抛出一个安全异常。 BroadcastReceiver权限(使用<receiver>标签)()返回后此权限将被检查,同时系统设法将广播递送至相关接收器。因此,权限失败者将会导致抛回给调用者一个异常,它()支持一个权限,使其控制能够递送广播至已登记节目接收器的组件或应用程序。(六)ANDROID类库Android平台提供了一个专门的 功能类库android.tele
37、phony来支持 服务的应用程序的开发,Android.telephony包含了一套与 相关的类,它们分别是 管理类Telephonymanager、 状态监听类PhoneStateListener、 位置类CellLocation、信号强度类SignalStrength、 服务类ServiceState 、短信管理类SmsManager。1、 管理类 Telephonymanager 管理类Telephonymanager用来访问 服务设备的一些信 息。Telephonymanager可使用的方法有: int getCallState() 获得 状态的常数。 CellLocation get
38、CellLocation() 获得当前设备所在的地点。 Int getSimState() 获得SIM卡的状态常数。2、 监听类 PhoneStateListenerPhoneStateListener 是一个监听设备 状态的类,包括服务状态、信号强度、短信等待指示和其它的一些状态。但是在访问一些状态时是需要有相应的访问权限,这些权限是需要在mainfest 文件中声明。 void onCallStateChanged(int state,string incomingNumber)当 状态改变时此方法会回环调用。 Void onServiceStateChanged(ServiceState
39、 serviceState) 当设备的服务状态改变时会调用此方法。 void onSignalStrengthChanged(int asu)当信号强度改变时就调用此方法。3、 服务类 ServiceState ServiceState(Parcel in) 通过parcel构造了一个ServiceState实例。 int getState() 获取当前 服务的状态。 Boolean getlsManualSelection()获得当前网络选择模式是手动选择还是自动选择。4、短信管理类 SmsManager public ArrayList<String> divideMessag
40、e(String text)将短消息结成几个分段,每个分段都不能大于网络支持的最大消息的字节。public void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent>sentIntents, ArrayList<PendingIntent> deliveryIntents) 将divideMessage(String test) 分割好的消息片段发送到指定的地点。 pu
41、blic void sendTextMessage (String destinationAddress, String scAddress,String text,PendingIntent sentIntent, PendingIntent deliveryIntent) 向指定的 号码发送消息,destinationAddress为接收方号码,scAddress为发送方 号码,sentIntent 发送是否成功回执,deliveryintent为接收是否成功的回执。5、INTENT Intent3,8,11 是一个将要执行的动作进行抽象的描述,一般是作为参数来使用,由Intent来协助完
42、成android各个组件之间的通讯。比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再由startService()或者bindservice()来启动一个后台的service。所以可以看出来,intent主要是用来启动其它的activity 或者service,所以可以将intent理解成activity之间的粘合剂。要在不同的activity之间传递数据,就要在intent中包含相应的东西,一般来说数据中最基本的应该包括: Action :Action用来指明要实施的动作是
43、什么,如ACTION_VIEW, ACTION_EDIT等。 Data :Data是要事实的具体的数据,一般由一个Uri变量来表示。 Category(类别): 这个选项指定了将要执行的这个action的其它一些额外的信息,例如 LAUNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。 Type(数据类型): 显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性
44、,可以强制采用显式指定的类型而不再进行推导。 component(组件): 指定Intent的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data、type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性被指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。 extras(附加信息):是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在e
45、xtras里,传给电子邮件发送组件。 四、系统实现(一)主界面及菜单功能的实现主界面使用FrameLayout布局,放置四个Tab组件,四个 Tab组件分别是:未接来电Tab、黑名单列表Tab、添加黑名单Tab、设置Tab。其Tab中显示的标题采用“string/TabName”的形式显示,这些TabName都定义在st文件中,主界面如图4-1所示。图 4-1 主界面在程序一开始时5,7,主框架就反向调用onCreate方法,调用onCreate()方法时,此函数首先正向调用父类Activity的onCreate()方法,先执行父类的预设行为,然后才执行自己的onCreate()方法的附加行为
46、。继续执行到showdialog(int DialogId),弹出一个Dialog对话框,当第一次运行该程序时,要求用户建立新的用户名和用户密码,然后直接进入主界面。当再次运行时要求用户输入已建立的用户名和密码,如果用户合法就进入主界面。开启弹出的Dialog对话框采用将Activity的主题属性theme设置为Translucent(透明),此设置在AndroidMainfest.xml文件中设置:<activity android:name=".Activitymain"android:theme="android:style/Theme.Translu
47、cent">当用户是合法的就进入主界面,主界面的进入用Intent跳转来实现:Intent intent = new Intent(Activitymain.this,BlackActivity.class);startActivity(intent);主界面的四个Tab标签是用TabHost类来创建和管理的:TabHost mTabHost = this.getTabHost();LayoutInflater.from(this).inflate(R.layout.main(),true); Intent mCalllogActivity = new Intent();(Bl
48、ackActivity.this, calllogContactsActivity.class);(identifier).setIndicator(getResources().getString(R.string.TabtitleId),getResources().getDrawable(R.drawable.TabIConId) ).setContent(Intent );Tab的标识字符串用newTabSpec来设置,setIndicator()设置Tab标题和Tab图标。当我们点击相应的Tab时就会执行该Tab对应的Activity,即用setContent(Intent inte
49、nt)设置的Activity。(二)黑名单列表TAB主界面默认显示的是黑名单列表,此列表是一个ListView形式的布局,列表里面的每一个元素的布局都是LinearLayout布局,LinearLayout布局中有两个TextView组件,分别显示联系人姓名和联系人的 号码。在此界面中点击相应的联系人,可以对此联系人进行回拨、编辑、删除等操作。(三)添加拒接来电点击添加拒接来电Tab,显示添加拒接来电界面,此界面的布局采用线性布局LinearLayout来实现。此界面是由三组TextView和EditView组成,分别用于提示编辑框内输入的信息和对应的信息编辑,以及两个Button分别是“确定
50、”和“取消”,当点击“确定”Button时将添加的联系人存储到拒接联系人数据库中,“取消”将填入的数据清空,且不存储到数据库中。(四)设置TAB点击“设置”Tab进入设置界面,此界面是一个LinearLayout布局,此布局里边包含了两个RadioGroup分别用于拒接选择和提示方式单一选择,以及一个RadioButton来修改用户登录的密码。此界面的显示结果如图4-2所示。图 4-2 设置界面(五) 状态监听由于要时刻监听 的当前状态,本系统利用广播监听6来接收 状态的改变。Public class PhoneBroadcastReceive extends BroadcastReceivP
51、ublic void Receive(Context context ,Intent intent) / TODO Auto-generated method stubpublic class CustomBroadListener extends PhoneStateListenerOverridepublic void onCallStateChanged(int state, String incomingNumber) / TODO Auto-generated method stub为了使不用开启来电防火墙就可以监听 状态,将PhoneBroadcastReceive服务设置为开机自
52、动开启11。<receiver android:name =".PhoneBroadCastRecive"><intent-filter ><action android:name=""></action><actionandroid:name="ent.action.BOOT_COMPLETED"></action></intent-filter></receiver>五、结论本文首先对目前智能手机的发展状况作了分析
53、,并对目前应用的Symbian、windows mobile、Mac OS x和RIM等平台的现状进行了分析与比较,进而分析了Android平台的系统建构和组件模型。最后通过在该平台上设计和开发了一个来电防火墙服务,以此来验证了该平台的可用性。系统包括添加、未接记录、黑名单记录、设置等模块。添加模块可以加入新的拒接来电,未接记录可以记录未接听的拒接来电,黑名单记录记录了所有的拒接来电,在此列表中可以对拒接联系人进行编辑、删除、回拨、全部删除等操作。设置模块可以对整个系统进行设置。本系统界面友好、操作简单、快捷;系统经过测试,可以稳定地运行;系统基本实现了上述功能,可以满足用户的基本需要。但是本
54、系统在界面设计方面还不是很完美,以及在个别功能上还有不完善的地方,比如在来电时,由于Android 2.2 没有直接供调用的挂机方法,所以不能直接实现直接挂机的功版本及之前的版本实现。除本文所列出的不足之处以外,应该还有不够人性化的地方,恳请各位老师批评指正。参 考 文 献1李惠,丁革建.智能手机操作系统概述J .电脑与电信,2009.(03):76-86.2靳岩.Android开发入门与实践M.北京:人民邮电出版社,2009.3Reto Meier .Android高级编程M.北京:清华大学出版社,2010.4韩超.Android系统级深入开发移植与调试M.北京:电子工业出版社,2011.5
55、姚尚朗.Android开发入门与实践M.北京:人民邮电出版社,2009.6杨丰盛.Android应用开发揭秘M.北京:机械工业出版社,2010.7张海藩.软件工程导论M.北京:机械工业出版社,2010.8张波,高朝勤,杨越.Android基础教程M.北京:人民邮电出版社,2009.9Bruce Eckel .Thinking in JavaM.北京:机械工业出版社,2010.10Android 开发网原创,EditText 中显示影藏Android输入法窗口DB/EL11 Android API帮助文档Z.致 谢在论文完成之际,我要特别感谢我的指导老师李海燕老师的热情关怀和悉心指导。在我撰写论文的过程中,李老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了李老师悉心细致的帮助,在此表示真诚的感谢。在论文的写作过程中,我还得到了公司许多同事的支持和帮助,他们给我提出了很多宝贵的建议,也给了我莫大的鼓励,在此致以诚挚的谢意。最后,向百忙之中抽出时间对本文进行评审并提出宝贵意见的各位专家、老师表示衷心的感谢! 附 录/*开启时弹出dialog实现*/package com.ghong.black;import android.app.Activity;import android.app.Alert
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急诊护士的工作体会
- 美容美发行业化妆师培训心得
- 玩具行业助理工作总结
- 医务室护士的工作感悟
- 咨询行业行政后勤工作总结
- 服务员的服务技巧与服务态度
- 生物知识综合讲解计划
- 完善酒店营销策略
- 咨询行业美工工作总结
- 税务筹划实践感悟
- 环卫清扫保洁、垃圾清运及绿化服务投标方案(技术标 )
- 13-4管道(设备)冲洗消毒试验记录
- 农田临水临电施工方案范本
- 千字文毛笔楷书描红字帖-米字格A4版
- 重金属矿山生态治理与环境修复技术进展
- HR主题分享9-绘制学习地图
- 成长需要挫折演讲稿(20篇)
- 职工学历教育补贴申请书
- GB/T 42915-2023铜精矿及主要含铜物料鉴别规范
- 高三英语二轮复习读后续写之弹钢琴的妈妈讲义
- s7et200mp自动化系统手册
评论
0/150
提交评论