[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc

上传人:音乐台 文档编号:1969075 上传时间:2019-01-27 格式:DOC 页数:57 大小:679KB
返回 下载 相关 举报
[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc_第1页
第1页 / 共57页
[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc_第2页
第2页 / 共57页
[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc_第3页
第3页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc》由会员分享,可在线阅读,更多相关《[信息与通信]基于Android系统的来电防火墙的实现-毕业论文.doc(57页珍藏版)》请在三一文库上搜索。

1、兰 州 商 学 院本科生毕业论文(设计)论文(设计)题目: 基于Android系统的来 电防火墙设计与实现 学 院、 系: 信息工程学院 计算机科学与技术系 专 业 (方 向): 电子信息工程 年 级、 班: 2007级电子信息工程 学 生 姓 名: 刘兴永 指 导 教 师: 李海燕 2011 年 05 月 20 日2声 明本人郑重声明:所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。本毕业论文(设计)成果归兰州商学院所有。 特此声明 毕业论文(设计)作者签名:

2、年 月 日基于Android系统的来电防火墙设计与实现摘 要本设计是基于Android系统的智能手机来电防火墙,主要功能是过滤来电号码。该系统包括来电拦截、拦截电话的添加和修改、拦截电话来电时的提示方式、拦截电话的回拨。本系统作为手机来电处理的主要功能之一,它的设计直接影响到手机的性能和友好性,另外,Android是一个开放的操作系统,它已被众多的手机厂商采用,因此此系统可以应用于所有以Android为操作系统的智能手机上。此系统已经过严格测试,运行稳定、快捷,即将应用到本公司的产品上。关键词Android Activity Intent phoneManagerABSTRACTThe des

3、ign 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 call processing system is designed to a

4、ffect 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 Phone. This system has been rigorously

5、 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平台与其它平台的比较8(五)本文的主要内容10二、需求分析10(一)功能分析

6、11(二)性能需求12(三)数据需求12(四)安全需求12三、系统设计13(一)功能框架13(二)布局规划及互动流程13(三)系统实现流程图14(四)数据存储实现151、设计数据库及表结构162、设计SharePreference存储16(五)安全需求设计16(六)ANDROID类库171、电话管理类 Telephonymanager172、电话监听类 PhoneStateListener183、电话服务类 ServiceState184、短信管理类 SmsManager185、INTENT19四、系统实现20(一)主界面及菜单功能的实现20(二)黑名单列表TAB22(三)添加拒接来电23(四

7、)设置TAB23(五)电话状态监听24五、结论25参 考 文 献26致 谢27附 录2851基于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 系列平台功能更强大,大多具备了音频、视频文件播放、上网冲浪、MSN聊天、电子邮件收发

11、等功能。而且,支持该平台的智能手机多数都采用了英特尔嵌入式处理器,主频比较高。另外,采用该平台的智能手机对硬件配置(如内存、存储卡容量)上的要求比采用其它平台的智能手机要高出许多,因此性能比较强劲,操作起来速度比较快。但是,此系列手机也有一定的缺点,如因配置较高、功能多而产生耗电量大、电池续航时间短、硬件成本高等缺点。3、PALM平台PALM1 是3Com公司的Palm Computing部门开发的一种32位的嵌入式平台,它的操作界面采用触控式,差不多所有的控制选项都排列在屏幕上,使用触控笔便可进行所有操作。作为一套极具开放性的平台,开发商向用户免费提供PALM平台的开发工具,允许用户利用该工

12、具在PALM平台的基础上编写、修改相关软件,使支持Palm的应用程序丰富多彩、应有尽有。由于Palm一直遵循Less More(少就是多)这一理念去设计,所以,与微软推出的平台要占有大量系统资源和存储容量不同的是,它本身所占的内存极小,基于PALM平台编写的应用程序所占的空间也很小,通常只有几十KB,所以基于PALM平台的掌上电脑虽然只有几兆的内存却可以运行众多的应用程序。但是,这么一来,它的功能就没有那么多,例如不具有录音功能、MP3播放功能等,如果你需要使用这些功能,就需要另外加入第三方软件或硬件设备方可实现。另外,对于中国用户而言,它有一个不足之处是,它的操作平台起初在中国销售的产品仍然

13、要使用中文外挂平台,有相当部分依然是以英文界面为主,在一定程度上影响了基于PALM平台的产品在中国市场的大面积进入。还有就是娱乐性比较差,操作比较困难,新手难于上手。4、Mac OS x平台苹果手机的平台(Mac OS X)近几年也是智能手机的一个新亮点,它已超过微软跃居手机行业第二。Mac OS X 使用基于BSD Unix的内核,并带有Unix风格的内存管理和抢占式多任务处理,大大改进内存管理,允许同时运行多款软件,这实质上消除了一个程序崩溃导致其它程序崩溃的可能性。它还具有极度华丽的图形用户界面、极高的运行效率和稳定安全性。但是,这些新特征需要更多的系统资源,按官方的说法Mac OS X

14、只能支持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 平台黑莓(Blackberry)是智能手机,它是加拿大RIM公司推出的一种移

15、动电子邮件系统终端,其特色是支持推动式电子邮件、手提电话、文字短信、互联网传真、网页浏览及其它无线咨询服务。它采用RIM平台,而RIM平台基于Java平台,运行极为稳定流畅,对Java软件兼容能力强,也有不错的软件资源。采用了标志性的滚轮设计,操作时非常方便。技术上来说,BlackBerry是一种采用双向寻呼模式的移动邮件系统,兼容现有的无线数据链路。BlackBerry.nterpriseSolution是一种领先的无线解决方案,可供移动专业人员用来实现与客户、同事和业务运作所需的信息链接。这是一种经证明为有效的优秀平台,它为世界各地的移动用户提供了与大量业务信息和通信的安全的无线连接。Bl

16、ackBerry安全无线延伸到移动商业用户的企业电子邮件账户,既使它们在办公室外,也可轻松处理邮件,就像从没有离开办公桌。用户可以在旅途中发送、接收、归档和删除邮件、并阅读电子邮件附件、支持格式有Microsoft Word、Microsoft Excel、Microsoft PowerPoint、AdobePDF、Corel WordPerfeet、HTML、ASCLL等等。BlackBerry解决方案的“始终在线”推入技术可以自动传递邮件,用户不需要执行任何操作就可接收通信,所以BlackBerry是移动电子邮件的巨无霸,比较适用于商务人士,但在多媒体播放方面的功能非常弱。6、OMS平台为

17、了推动移动互联网产业的发展,并保持中国移动对产业链的控制,在苹果iPhone 以及谷歌Android平台的启发下,中国移动携联想推出自己的手机平台OMS(Open Mobile System)。OMS同样是基于Linux内核,采用Android源代码,但在业务层和此前的谷歌手机完全不一样,OMS将集成大量中国移动的业务。显然中国移动并不愿意把采用该平台的手机叫Gphone或谷歌手机,而是使用了新代号Ophone。7、J2ME平台J2ME(Java Platform micro Edition)是Java语言专门针对嵌入式电子产品的版本,应用在移动电话、PDA、电视机顶盒以及其它资源受限的设备上

18、,J2ME是目前移动设备上使用最广泛的开发平台。J2ME平台由多种配置、简表和可选包组成。可以发现J2ME的应用是建立在JVM(或KVM)之上,而主机操作系统是位于J2ME平台之外。这样的设计一方面提供了跨操作系统的特性,主机操作系统可以是Symbian、Windows Mobile、和Linux,目前还不支持iPhone Mac OS 。另一方面J2ME虽然提供了统一的开发平台,但是JVM的安全机制让J2ME的应用程序不能调用本地系统资源。(三)ANDROID的系统介绍Android系统是Google公司推出的一款开放平台,Android以linux2.6为内核,系统稳定安全,应用程序使用J

19、ava语言来开发,缩短了软件开发周期,现在已经被许多的手机厂商采用。Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和一些关键的平台应用,拥有移动电话工作所需的全部软件。Android最大特点在于它是一个开放的体系结构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android里面具有非常丰富的图形系统,提供对多媒体功能的支持和非常强大的浏览器。Android的主要特点体现在以下几点2:(1)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(2)D

20、alvik虚拟机器:在Android平台上所使用的Java虚拟机,不是Sun公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容性的同时,针对移动手机进行了大幅度优化,占用资源更小,运行效率更高。(3)集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发的。WebKit是一个开源浏览器网页排版引擎。配合Android手机的功能,可以在浏览网页时,达到更好的效果。(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D和3D两个方面。在2D方面,Android提供了一套特有的类库(SGL);而在3D

21、方面则是使用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的过渡技术,它主要是在GSM系统中采用了一种新的调制解调方法,即最先进的多时隙操作和SPSK调制技术。Wi-Fi(Wireless Fidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4GHz附近的频段,该频段目前

24、尚属无须许可的无线频段。其目前可使用的标准有两个,分别是IEEE802.11a和IEEE802.nb。这些通讯能力也是属于手机硬件方面的发展,也是在开发Android应用程序时可以突出的特点之一。(9)丰富的开发环境:Android SDK提供了相当完善的程序开发环境,其开发环境包括设备模拟器、调试工具、内存和性能检测等方面的评估功能,另外也提供可用于Eclipse IDE的开发插件界面。(四)ANDROID平台与其它平台的比较首先看一下Symbian,它存在着以下的致命不足:Symbian的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然Symbian非常成熟,但是基本上还带有浓厚的保守

25、色彩,应用软件与我们日常的PC软件有较大的理念差异。再者Symbian与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。Android平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软件还是硬件设计,几乎都是围绕着快捷的移动互联网应用所展开的,同时Android与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。与Android拥有相同属性的还有微软的Windows Mobile,然而臃肿的Windows平台饱受垢病,真正喜欢它的用户并不多。至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用程序。

26、所有的东西都应该苹果自己设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了嵌入式系统以及完整的应用,但它干脆都不宣扬iPhone的软件设计,而是将iPhone作为一个包含软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为手机市场的风向标。与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为业界所公认。自由软件高度活跃,错误可以被快速修改,新的应用和新的创意可以不断出现。自由的属性让Android的错误可以快速的修正,从而提高系统的可靠性与安全性。Android平台的另外一个优势是标准化和跨平台。作为开发平台,可以

27、为任何手机厂商自由选择一厂商对代码做出修改,那么修改的结果必须迅速返回,确保系统的统一性。其次,Android的应用都基于Java开发,Java具有一次编写、到处运行的跨平台属性,换句话说,开发者只要编写一遍程序,就能够实现在所有Android设备中运行,真正做到了硬件无关性,这显然大幅度降低了开发者的负担。再者,Android提供标准化的API和SDK开发包,手机厂商可以根据需要自行开发或收纳已有的程序,从而打造出富有特色的Android平台。这对手机厂商来说,它可以完全不管软件技术之内的问题,快速整合出适合自己的一套平台,然后将精力集中在硬件设计上面,可以在短时间内快速推出新品,对开发者来

28、说,标准化的Android绝对是令人愉快的选择。Android和操作系统进行了紧密地整合,从而可以方便地使用操作系统的功能。并且从图形应用界面的开发上来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响应代码,比用AWT/Swing编写图形应用程序要方便得多。当然由于Android已经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。(五)本文的主要内容本文首先对目前的一些智能手机操作系统进行了介绍,并阐述了它们之间的差异。其次对系统的需求做了分析,包括功能分析、性能分析、数据分析、安全分析。随后论述了系统的主要功能,采用流程图的

29、方式来表达使用者与Android应用程序的互动过程,并从互动过程中,引导出应用程序的画面布局和Activity类的规划。然后规划出幕前布局和幕后Activity,以此作为程序撰写的蓝图。最后设计了系统Activity之间跳转算法和系统数据库,并论述了各功能模块的主要实现过程。二、需求分析本系统设计采用的开发环境为Windows下Google Android开发平台,所需软件有3:(1) JAVA JDK SE 1.6(2) Eclipse 3.3.2(3) Google Android SDK(4) ADT 0.8.0(一)功能分析语音通信是手机一直不变的功能 ,然而来电防火墙就是专门针对那些

30、骚扰电话和用户不想接听的来电而设计的,它需要提供友好的界面、方便的用户操作界面,接收用户的各项操作并将这些操作转化成与之对应的命令,采用用户活动的方式完成各个服务逻辑流程,其功能需求主要包含以下内容:(1)来电拦截系统能够监听电话状态的改变,判断是否有电话呼入,然后判断此来电是不是需要屏蔽的来电。(2)拒接来电的添加用户可以添加自己不想接听的电话,当此电话呼入时,系统将进行相应的处理。(3)拒接来电的回拨当用户要呼叫存在拒接列表中的联系人时,可以运用此功能,而不需用户再次输入呼叫人的电话号码。(4)编辑拒接联系人当拒接列表中的联系人的信息改变了,可以重新编辑拒接联系人的信息。(5)删除联系人当

31、不想再将此联系人作为拒接的对象,就可以运用此功能将它删除。(二)性能需求手机应用程序需要提供良好的用户体验。良好的用户体验体现在以下几点:(1)界面友好用户界面简单直观,并且易于操作。(2)快速响应快速处理用户的输入或请求,对于有些需要较多时间的应用程序,可以在它处理时 ,给用户一个提示,让用户知道程序还在运行中。(3)无缝性Android应用程序模型的构建是能够允许用户在不同的应用程序之间进行流畅的切换。所以当用户正在做一些其它的事情,如在接电话或查看地图时,SMS服务每次都在短信收到时弹出一个对话框,这很快就会使用户崩溃,需要引入通知机制,来使用户能够自己控制。(三)数据需求(1)添加界面

32、需输入需要拒接的来电号码。(2)开启应用程序时需要输入用户名和密码。(四)安全需求Android安全中的一个重要的设计是在默认情况下应用程序没有权限执行其它应用程序、操作系统或用户的有害操作。这些操作包括读/写用户的隐私数据。应用程序的进程是一个安全的黑盒子,它不能干扰其它应用程序,除非给它声明权限。三、系统设计(一)功能框架在设计系统的功能框架时,主要分为显示需要拦截的号码、添加新的拦截号码、系统设置。系统功能模块如图3-1所示。图 3-1 系统功能模块(1)黑名单列表模块功能:显示存在于黑名单数据库中的联系人和联系人的电话。(2)添加联系人功能:向黑名单数据库中添加新的联系人,同时在电话本

33、数据库中将对应的联系人删除。(3)设置模块功能:设置当黑名单数据库中的联系人来电时提示用户的方式,以及开启来电防火墙应用程序时用户密码的修改。(二)布局规划及互动流程一个系统通常会用多个画面来与使用者进行沟通。用Used Case 图来表达使用者与Android应用程序的互动过程,从互动过程中,已导出应用程序的画面布局和Activity类的规划,互动过程如图 3-2所示。图3-2 用例图现在对系统中的未接列表、黑名单列表、添加、设置功能进行画面布局和规划。(三)系统实现流程图启动模拟器后,模拟器会自动加载指定的图片,然后进入主界面,并在主界面中把图显示出来,而且会根据屏幕的大小自动调整显示出的

34、图片。然后在菜单栏中可以选择相应的标签,并进入相应的界面,如果想退出相应的界面,可以按菜单键的返回键回到主界面。现针对系统布局规划和互动,设计出相应的流程图如图3-3所示。 图 3-3 程序流程图(四)数据存储实现Android 提供了一些方式来存取数据2,4。一是文件方式:Android可以将文件存储在设备或其它移动媒介上。二是数据库方式:Android有SQLite数据库的API。应用程序可以创建和使用SQLite数据库。三是网络方式:Android还支持使用网络存取数据的方式。除此之外,Android还可以向其它应用程序请求并获得数据。本系统采用SQLite数据库的方式来存取数据,它只有

35、表格一种数据结构。在这里只需创建一张能保存需要拦截的联系人表,当然以后可以根据需求与功能的完善和增加,可以对数据库进行升级。1、设计数据库及表结构按照需求分析,设计数据库和表的结构如表3-1所示。表 3-1 blackcontact表的结构描述属性类型含义备注idINTEGER主键IDnametext拒接联系人姓名numbertext拒接联系人号码备注text拒接联系人备注描述文字2、设计SharePreference存储SharePreference是Android提供用来存储一些简单配置信息的一种机制。针对此程序需要存储对应用程序的设置信息,其它类似的数据等需要的时候再添加。(五)安全需求

36、设计(1)权限命名一个基本的Android应用程序没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中数据的有害操作。在应用程序需要时,可在Androidmanifest.xml文件中列举一个或更多的标签来声明此权限。(2)在AndroidMainfest.xml文件中支持权限通过Androidmainfest.xml文件可以设置高级权限,用来限制访问组件或应用程序。所以如果需要访问某组件,需要在这里声明一个权限,现对跟本系统有关的组件权限作以下说明。 Activity 权限(使用标签)限制能够启动与Activity相关联的组件或应用程序。此权限在Context.startActivi

37、ty()和Contex.startActivityForResult()期间要经过检查;如果调用者没有请求权限,那么会为调用抛出一个安全异常。 BroadcastReceiver权限(使用标签)限制能够为相关联的接收器发送广播的组件或应用程序。在Context.setBroadcast()返回后此权限将被检查,同时系统设法将广播递送至相关接收器。因此,权限失败者将会导致抛回给调用者一个异常,它将不能递送到目的地。在相同方式下,可以使用Context.registerReceiver()支持一个权限,使其控制能够递送广播至已登记节目接收器的组件或应用程序。(六)ANDROID类库Android平

38、台提供了一个专门的电话功能类库android.telephony来支持电话服务的应用程序的开发,Android.telephony包含了一套与电话相关的类,它们分别是电话管理类Telephonymanager、电话状态监听类PhoneStateListener、电话位置类CellLocation、信号强度类SignalStrength、电话服务类ServiceState 、短信管理类SmsManager。1、电话管理类 Telephonymanager电话管理类Telephonymanager用来访问电话服务设备的一些信 息。Telephonymanager可使用的方法有: int getCa

39、llState() 获得电话状态的常数。 CellLocation getCellLocation() 获得当前设备所在的地点。 Int getSimState() 获得SIM卡的状态常数。2、电话监听类 PhoneStateListenerPhoneStateListener 是一个监听设备电话状态的类,包括服务状态、信号强度、短信等待指示和其它的一些状态。但是在访问一些状态时是需要有相应的访问权限,这些权限是需要在mainfest 文件中声明。 void onCallStateChanged(int state,string incomingNumber)当电话状态改变时此方法会回环调用。

40、 Void onServiceStateChanged(ServiceState serviceState) 当设备的服务状态改变时会调用此方法。 void onSignalStrengthChanged(int asu)当信号强度改变时就调用此方法。3、电话服务类 ServiceState ServiceState(Parcel in) 通过parcel构造了一个ServiceState实例。 int getState() 获取当前电话服务的状态。 Boolean getlsManualSelection()获得当前网络选择模式是手动选择还是自动选择。4、短信管理类 SmsManager p

41、ublic ArrayList divideMessage(String text)将短消息结成几个分段,每个分段都不能大于网络支持的最大消息的字节。public void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList parts, ArrayListsentIntents, ArrayList deliveryIntents) 将divideMessage(String test) 分割好的消息片段发送到指定的地点。 public void sendTextMessage (S

42、tring destinationAddress, String scAddress,String text,PendingIntent sentIntent, PendingIntent deliveryIntent) 向指定的电话号码发送消息,destinationAddress为接收方号码,scAddress为发送方电话号码,sentIntent 发送是否成功回执,deliveryintent为接收是否成功的回执。5、INTENT Intent3,8,11 是一个将要执行的动作进行抽象的描述,一般是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用sta

43、rtActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再由startService()或者bindservice()来启动一个后台的service。所以可以看出来,intent主要是用来启动其它的activity 或者service,所以可以将intent理解成activity之间的粘合剂。要在不同的activity之间传递数据,就要在intent中包含相应的东西,一般来说数据中最基本的应该包括: Action :Action用来指明要实施的动作是什么,如ACTION_VIEW, ACTION_ED

44、IT等。 Data :Data是要事实的具体的数据,一般由一个Uri变量来表示。 Category(类别): 这个选项指定了将要执行的这个action的其它一些额外的信息,例如 LAUNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。 Type(数据类型): 显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。 com

45、ponent(组件): 指定Intent的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data、type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性被指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。 extras(附加信息):是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。 四、系统实现(

46、一)主界面及菜单功能的实现主界面使用FrameLayout布局,放置四个Tab组件,四个 Tab组件分别是:未接来电Tab、黑名单列表Tab、添加黑名单Tab、设置Tab。其Tab中显示的标题采用“string/TabName”的形式显示,这些TabName都定义在string.xml文件中,主界面如图4-1所示。图 4-1 主界面在程序一开始时5,7,主框架就反向调用onCreate方法,调用onCreate()方法时,此函数首先正向调用父类Activity的onCreate()方法,先执行父类的预设行为,然后才执行自己的onCreate()方法的附加行为。继续执行到showdialog(int DialogId),弹出一个Dialog对话框,当第一次运行该程序时,要求用户建立新的用户名和用户密码,然后直接进入主界面。当再次运行时要求用户输入已建立的用户名和密码,如果用户合法就进入主界面。开启弹出的Dialog对话框采用将Activity的主题属性theme设置为Translucent(透明),此设置在AndroidMainfest.xml文件中设置:当用户是合法的就进入

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1