《基于android系统的个性化防火墙设计与实现大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于android系统的个性化防火墙设计与实现大学本科毕业论文.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录第一章 引言11.1 Android系统背景介绍11.2国内外研究现状11.2.1 国内外手机系统现状11.2.2 国内外手机应用现状3第二章 Android系统基本介绍52.1 Android简介52.2 Android结构62.3 Android应用程序结构解析72.3.1 Android的API72.3.2 Android应用程序结构剖析9第三章 开发环境的搭建133.1 jdk的安装及配置133.2 Eclipse安装133.3 Android SDK安装133.4 使用Ec1ipse下载ADT(Android开发插件)143.5 使用Ec1ipse开发Android应用15第四章
2、 个性化手机防火墙的概要设计164.1 黑名单电话和短信过滤功能的实现164.1.1 黑名单选择模式164.1.2 两种方式添加黑名单174.2 基于关键字的短信过滤功能的实现174.3隐私空间的实现184.4 数据库设计184.4.1 Android数据库存储简介184.4.2 数据库设计概述194.4.3 数据库详细设计20第五章 个性化手机防火墙的详细设计235.1 基于黑名单电话和短信过滤功能设计235.1.1 设计思路235.1.2 关键代码及解释235.2 两种添加名单功能的设计265.3基于关键字的短信过滤功能的设计295.4 隐私空间的设计295.5 项目文件夹设计295.5.
3、1 项目文件夹设计295.5.2 项目包和类说明31第六章 防火墙的运行及性能测试326.1 系统运行测试326.2 黑名单管理模块测试336.2.1 两种方式添加名单测试336.2.2 测试结果和分析346.3 基于黑名单的拦截测试346.3.1 基于黑名单的电话和短信拦截测试346.3.2 测试结果和分析35结果分析及展望37致 谢38参考文献3933基于Android系统的个性化防火墙设计与实现赵彪,数学计算机科学学院摘 要:随着当今信息化的社会快速发展,智能手机已成为人们生活中不可缺少的一部分。然而在商务体系极其发达的时代,一方面广告以各样的形式渗入人们的生活,手机自然也成为其中一种主
4、要的传播通道;另一方面,人们的生活变得繁忙,没有闲暇时间去处理这些扰人的信息,更希望手机本身能够提供这方面的服务,尽可能地减少这些不必要的”骚扰”。因此,手机来电防火墙及短信过滤软件应运而生。本文对当前手机操作系统、来电防火墙软件的发展现状做了简单的介绍,进而详细地分析了Android的特征、架构以及Android应用的构成和工作机制,并对Android与其他操作系统进行了比较,说明了Android系统在手机操作系统中的优势。关键字:Android;智能手机;防火墙;个性化Design and implementation of personal firewall based on Andro
5、id systemBiao Zhao, School of Mathematics and Computer ScienceAbstract: With the rapid development of information society, intelligent mobile phone has become an indispensable part of life. However, in extremely developed era of the business system, on the one hand, advertisement permeates into peop
6、les lives by various forms, mobile phone has become one of the major communication style; on the other hand, peoples life turns busy, having no time to deal with these disturbing information, people hope that the mobile phone itself can provide this service, as much as possible to reduce the unneces
7、sary “harassment”. Therefore, mobile phone calls and SMS software emerge as the times require. The status of the mobile phone operating system, incoming call firewall software this paper is briefly introduced, and detailed analysis of the characteristics of Android, architecture, Android application
8、 structure and working mechanism. This paper states the advantage of the Android system in the mobile phone operating systems by compared with others. Key Words: Android; Smartphone ; Firewall ; Personal第一章 引言1.1 Android系统背景介绍随着移动设备的快速普及以及移动设备硬件的提升,移动设备功能越来越完善。移动设备的系统平台也逐渐火热起来。3G时代的到来也是助推移动设备的火热发展的一
9、个大因素。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android系统用户。Android是基于Linux内核的软件平台和操作系统。早期由Google开发,后由Open Handset Alliance开发。它采用了软件堆层(Software stack,又名以软件叠层)的架构,主要分为三部分。底层以Linux核心工作为基础,提供操作系统(OS)功能;中间为框架层及Android运行时环境,上层为应用层,主要是由Java语言写的应用程序。1.2国内外研究现状1.2.1 国内外手机系统现状目前
10、国外各软硬件厂商已经推出过多款手机操作系统。下面简单介绍一下现在的主流手机操作系统。IOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。IOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。目前最新的IOS版本是5.0 。它的用户体验是最好的,但它不是开源的,使用IOS的成本比较
11、高。Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox Live游戏、Zune音乐与独特的视频体验整合至手机中。2010年10月11日晚上9点30分,微软公司正式发布了智能手机操作系统Windows Phone,同时将谷歌的Android和苹果的IOS列为主要竞争对手。搭载Windows Phone的智能手机正在进军智能手机市场。2011年2月,诺基亚与微软达成全球战略同盟并深度合作共同研发。2012年3月21日,Windows Phone 7.5登陆中国,这也是第一个正式登陆中国的Windows Phone系统。Windows Phone 8将采用和Windows
12、 8相同的内核。Windows Mobile 系列操作系统是从微软计算机的Windows操作系统演化而来的。Windows Mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。WM的应用软件以Microsoft Win32 API为基础。但是,2010年10月,微软宣布终止对WM的所有技术支持。PalmOS属于Palm公司开发,是一种32位的嵌入式操作系统,是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占
13、用的内存非常小。现在多用于Palm公司生产的手机上。该系统允许用户在其基础上编写和修改相关软件,使支持的应用程序更加丰富多彩。但Palm系统与其他手机系统相比在其它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。其最新的版本为Palm OS 5.2。目前国内还没有自主研发并商品化的手机操作系统。当然,近些年来国内企业和我国政府在这方面也投入了大量的人力和物力,同时也取得了一定成果。像小米公司的MIUI系统、百度的百度易系统,还有联想的乐Phone系统,它们是基于Android的二次开发版本,对界面进行修改、添加了新的功能,更
14、适合中国手机用户的需求。1.2.2 国内外手机应用现状目前国内外手机应用服务方向主要有基于地理位置的信息服务(Location Based Service LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网,使用基站来定位)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。例如手机定位,导航服务。在Android中使用这些服务是件很轻松的事。近年来十分热门的网络社交服务(Social Networking Serv
15、ices)也已进入到手机客户端领域。国外最大的社交Facebook也已经推出手机客户端产品。Twiter,Myspace等国外知名社交类网站都已经推出手机版。但这几种客户端在国内需要翻墙才能访问。国内淘宝网旗下口碑网在也已经推出针对多个手机平台的客户端程序。MSN,QQ,微博等即时通信类的应用也已经在各个主流手机平台推出。手机办公类软件在手机上也正日趋完善,在手机上编辑查看各类文档已经实现,在android平台上的QuickOffice就是这样的软件。手机娱乐游戏类应用,作为传统类手机应用,在各个平台上发展已近相对完善,手机越来越完美的支持各种流媒体的播放,各类传统PC游戏厂商也进入了手机领域
16、。目前智能手机已经成为生活中必备的工具,同时它也具有这样的能力,已经拥有简单PC的性能。第二章 Android系统基本介绍2.1 Android简介(l) 应用程序架构: 在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件,可以节省开发应用程序的心力及时间2。这是Android平台的优势所在,因为Android是开源的,我们可以看到这些组件是如何实现的。(2) Dalvik虚拟机器: 在Android平台上所使用虚拟机,不是Sun公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行
17、了大幅优化,占用资源更小,运行效率更高。(3) 集成的浏览器: 集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发成的。WedKit是一个开源浏览器网页排版引擎,目前使用WebKit引擎的浏览器主要有:Safari,Midori,Epiphany等。 (4) 优化的绘图能力: 在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,Android提供了一套特有的类库(SGL);而在3D方面则是使用OpenGL/ES(openGL for Embedded systems)规范的类库。 (5) SQLite数据库: SQLite提供结构化的数据存取。SQLit
18、e是一款轻型的关系数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。2.2 Android结构 Android结构是Linux内核、C/C+函数库、Dalvik虚拟机、应用程序框架以及应用程序构成的。图2-1 Android系统组件结构图主要的类:android.app :提供高层的程序模型、提供基本的运行环境android.content 包含各种的对设备上的数据进行访问和发布的类android.database :通过内容提供者浏览和操作数据库android.
19、graphics :底层的图形库android.media :提供一些类管理多种音频、视频的媒体接口 :提供帮助网络访问的类,超过通常的.* 接口android.os :提供了系统服务、消息传输、IPC机制android.provider :提供类访问Android的内容提供者android.view :提供基础的用户界面接口框架android.util :涉及工具性的方法,例如时间日期的操作android.webkit:默认浏览器操作接口android.widget:包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用2.3 Android应用程序结构解析2.3.1 Android的AP
20、IAndroid API主要包含了以下几个部分:(1) AndroidManifest.xml: AndroidManifest.xml是系统的控制文件,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务(Service),意图接收器(Intent Receiver)和内容提供者(ContentProvider)。举例来说,控制文件就是把活动和要接收的意图(Intent)连接在一起的”胶水”。(2) 活动: 活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。(3) 视图
21、: 视图可以将其自身绘制到屏幕上。Android的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界面)。(4) 意图: 意图是一个简单的消息对象,它表示程序想做某事的”意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览这个URI。系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。(5) 服务: 服务是运行在后台的一段代码。
22、它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要。其它的组件可以绑定到一个服务上来,通过远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音乐还继续播放着。(6) 通知: 通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。2.3.2 Android应用程序结构剖析通常由以下四个组件来构建一个完整的Android应用程序。活动意图接收器内容提供者服务当然,并不是
23、所有的Android应用程序都得具备上述的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。1活动活动是上述的四个组件中最常用的一个。每个活动都是Activity的子类,并实现一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:一个文本聊天应用程序,至少应该包含一
24、个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。2意图接收器当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并不显示UI界面,它是通过NotificationManager来通知用户他们感兴趣的事件发生了。意图接收器同样可以被注册在AndroidManifest.xml文件中,同时也可以在代码中使用Context.registerReceiver
25、()来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用程序。3服务服务是具有长生命周期并且没有用户界面的代码,它在后台运行。不仅可以使用本地服务,还能使用远程服务。4内容提供者在Android中,每个应用程序都是有自己的userID及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想象成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用程序之间想要共享数据,就需要使用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供者处理过的数据
26、。5Intent的详细解析一个Android应用程序主要由四种组件组成,这四种组件可参考上一节的内容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。这些组件之间的通讯只要由意图协助完成。意图负责对应用中一次操作的动作、动作对应的数据、附加数据进行描述,Android则根据此意图的描述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被调用者之间的交互。6Android活动的生命周期Android应用程序的生命周期是由Android框架进行管理,而不是由应用
27、程序直接控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法),都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了onCreate方法之外,还预先定义了onPause(暂停)、onResume(继续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保
28、管状态、恢复状态、传送资料等工作。7活动的运作过程(l)一般启动启动一个活动的基本流程为onCreate一onStart一onResume。该流程首先分配资源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。(2)调用另一个活动调用另一个活动的基本流程为onPause(l)一onCreate(2)一onStart(2)一onResume(2)一onStop(l)。该流程首先冻结原来的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。(3)回到原来活动回到原来活动的基本流程为onPause
29、(2)一onRestart(1)一onStart(l)一onResume(1)一onStop(2)一onDestroy(2)。另外按返回键也可以回到原来的活动。(4)退出结束退出结束的基本流程为onPause一onStop一onDestroy。如果程序中有直接调用finish方法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。(5)回收后再启动回收后再启动的基本流程为onCreate一onStart一onResume。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法。第三章 开发环境的搭建开发环境配置:JDK + Eclipse +An
30、droid SDK + ADT3.1 jdk的安装及配置去相应网站下载JDK,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下:我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量。安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java ?version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:图3-1 验证JDK安装是否成功3.2 Eclipse安装去网址为http:/www.eclipse.org/downloads/下载Eclipse,解压即可运行。3.3 Android SDK安装在Android Developers下载android-
31、sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的”Force https:/.”这项,再点击Available Packages。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。CMD 运行 android -h 如果有类似以下的输出,表明安装成功。图3-2 验证Android SDK是否安装成功 3.4 使用Ec1ipse下
32、载ADT(Android开发插件)(1)启动Eclipse,选择HelpInstall New SoftwareAdd(2)在编辑框中输入插件名字,输入更新插件的地址: https:/dl-(3)看到一个更新的列表,点击Finish。(4)在返回的对话框中选择Android pluginEclipse IntegrationAndroid development Tools并且点击Next。(5)选择Accept terms of the license agreement,点击Next。(6)点击Finish。(7)选择Install All。(8)重新启动Eclipse。(9)重启后设置A
33、ndroid属性中的Android SDK目录(不包括SDK下的Tools):选择WindowPreferences打开编辑属性窗口。选择Android属性面板。点击Browse,选择加入Android SDK的目录。选择Apply,最后点击OK。3.5 使用Ec1ipse开发Android应用使用Eclipse IDE开发一个Android应用。首先是创建一个Android工程,然后设置应用启动配置。然后可以编辑代码,启动,调试应用。第四章 个性化手机防火墙的概要设计4.1 黑名单电话和短信过滤功能的实现4.1.1 黑名单选择模式黑名单的有三种拦截模式:只拦截电话,只拦截短信,两者都拦截。在
34、黑名单表中有姓名、电话、拦截模式等字段。实现原理:软件启动后有一个服务(service)在后台运行,在服务中注册有一个监听器,监听电话的状态,当有电话来时,状态会变成响铃状态,在这里可以取得来电的号码。这时遍历表中的黑名单,看是否有号码和来电号码匹配,如果匹配就是该拦截的号码,这里就把电话结束掉,并写入拦截表中,弹出通知告知有电话被拦截。短信的拦截和电话拦截不一样,有两种实现方法:(1) 接收系统短信广播:当收到短信时,Android系统会发出一个广播,通知收到短信,拦截短信基于Android中的广播机制。Android中的广播机制是所有注册了该广播监听器的程序都收到广播(只要先收到广播的应用
35、程序没有结束掉该广播),当收到广播就会触发收到广播的事件,可以在这里处理短信,本程序采用这种方法。优点:可以拦截来信在状态栏的显示通知,适合短信拦截。缺点:可以发展成MU,在后台悄悄的收/发短信(2) 应用观察者模式,监听短信数据库,操作短信内容: 当系统收到短信时,会将短信写入短信数据库,可以注册一个监听器来监听短信数据库的变化。当短信数据库变化时就触发这个事件,在这里可以处理短信。优点:操作方便,适合简单的短信应用。缺点:来信会在状态栏显示通知信息。4.1.2 两种方式添加黑名单添加黑名单主要依赖Android中的内容提供者(ContentProvider)和内容访问者(ContentRe
36、solver)机制:在Android中的程序与程序之间数据都是私有的,即在程序A中创建的数据库或者文件只能由A自身使用,其他程序无法直接使用A中创建的数据库信息和文件信息,这样保证了程序与程序之间的独立性和数据安全。那么我们如何能够更好的使得不同程序之间数据的独立,而又可以在需要共享数据的时候能够有共同操作数据的桥梁呢?为了解决这个问题,Android设计了一种称为内容提供器的技术,从而为内容共享提供了支持,这就是Android的重要组件ContentProvider。通过ContentProvider我们可以轻松访问其它应用程序提供出来的数据访问接口。当然我们也可以写自己的ContentPr
37、ovider,提供数据给其它应用程序访问,实现ContentProvider中的方法就可,在这里主要是使用了系统的ContentProvider。(1) 系统联系人:可直接从系统联系人中添加名单到黑名单,利用上面提到的系统提供的ContentProvider来访问联系人数据库,查询所有联系人的名字和号码信息。可批量添加到黑名单数据库。(2)手动输入:当然,我们可以手动输入要添加的号码和名字。4.2 基于关键字的短信过滤功能的实现实现原理:注册广播接收器,监听系统短信广播,操作短信内容: 当系统收到短信时,会向系统发送广播,可以注册一个监听器来接收系统的短信广播。在这里可以查看短信中包括的内容是
38、否有我们的关键字,如果有就拦截该短信;如果没有就不做处理。 关键字有系统自带关键字和手动添加关键字。4.3隐私空间的实现现在的手机中有许多个人信息是不希望别人看到的,特别是一些电话和短信,隐私空间的出现满足了这样的需求。让你的隐私真正的来无影,去无踪。实现原理:当有来电和短信时,判断是否是隐私号码的来电或短信,如果不是,什么也不做;如果是,就从通话记录删除该电话,存入隐私数据库中;如果是短信,就从收信箱删除该短信,存入隐私数据库中。进入隐私空间是需要密码的。4.4 数据库设计4.4.1 Android数据库存储简介(1)SharedPreferences存储数据;(2)文件存储数据;(3)SQ
39、Lite数据库存储数据; (4)Content Provider存储数据; (5)网络存储数据;Android数据存储流程图如图5-1:图5-1 Android数据存储流程图4.4.2 数据库设计概述在Android平台下,使用了一个轻型的数据库SQLite。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能满足我们对数据库的大部分需求,在本系统中也采用SQLite来存储主要的数据。4.4.3 数据库详细设计在本系统中共使用了4张表,它们分别是:短信黑名单表(message_forbid_table),短信垃圾
40、箱表(message_rubbish_table),来电黑名单表(call_forbid_table),来电拦截记录表(call_record_table) 。1.短信黑名单表(message_forbid_table)_id:主键,自增长message_forbid_phone:短信黑名单号码2.短信垃圾箱表(message_rubbish_table)_id:主键,自增长message_rubbish_phone:垃圾短信号码message_rubbish_time:收件时间message_rubbish_conten:短信内容3.来电黑名单表(call_forbid_table)_id:
41、主键,自增长call_forbid_phone:黑名单号码4.来电拦截记录表(call_record_table)id:主键,自增长call_record_phone:黑名单号码call_record_time:来电时间call_record_area:来电归属地4.4.4数据库源码(打开和创建类 DbAdapter . Java)/ 4个表:短信黑名单表,短信垃圾箱表,来电黑名单表,来电拦截记录表public static final String MESSAGE_FORBID_TABLE_NAME = “message_forbid_tablepublic static final Str
42、ing MESSAGE_RUBBISH_TABLE_NAME = “message_rubbish_table”;public final static String CALL_FORBID_TABLE_NAME = “call_forbid_table”;public final static String CALL_RECORD_TABLE_NAME = “call_record_table”;/ 公用id字段public static final String TABLE_ID = “_id”;/ 短信黑名单表字段:来电号码public final static String MESSA
43、GE_FORBID_PHONE = “message_forbid_phone”;/ 短信垃圾箱表字段:垃圾短信号码,收件时间,短信内容public static final String MESSAGE_RUBBISH_PHONE = “message_rubbish_phone”;public static final String MESSAGE_RUBBISH_TIME = “message_rubbish_time”;public final static String MESSAGE_RUBBISH_CONTENT = “message_rubbish_content”;/ 来电黑
44、名单表字段:黑名单号码public static final String CALL_FORBID_PHONE = “call_forbid_phone”;/ 来电拦截记录表字段:黑名单号码,来电时间,来电归属地public static final String CALL_RECORD_PHONE = “call_record_phone”;public static final String CALL_RECORD_TIME = “call_record_time”;public static final String CALL_RECORD_AREA = “call_record_are
45、a”;第五章 个性化手机防火墙的详细设计5.1 基于黑名单电话和短信过滤功能设计5.1.1 设计思路当有来电时我们可以取出来电号码,并把这个号码交给我们的来电处理类BroadCastTool,在这个类里面从数据库中取出数据对比这个号码符合我们的什么操作。主要是基于一张黑名单表,在这张表里有来电号码,姓名,名单类型等。首先判断拦截模式,然后判断是否在名单中,最后判断号码类型。判断出结果后来决定是否拦截这个电话或这条短信。如图5-1:图5-1 基于黑名单的过滤流程图5.1.2 关键代码及解释在本程序中注册了一个电话监听器和一个短信广播接收器。电话监听器时刻监听Android电话服务程序,电话有三种状态:空闲,响铃和摘机。平时电话处于空闲状态,当有电话进来时就进入响铃状态,在这里能得到来电号码,这时我们把来电号码交给电话处理类BroadCastTool来处理。并要在AndroidManifest.xml 中加入相应的权限:uses-permission android:name=“android.