文档详情

基于Android系统的手机防火墙的设计与实现.doc

发布:2019-04-17约2.87千字共6页下载文档
文本预览下载声明
基于Android系统的手机防火墙的设计与实现 摘 要:来电防火墙主要基于黑白名单的电话和短信过滤功能,再结合数据库的使用,达到来电或者信息屏蔽黑名单的作用。黑名单连接到数据库,可以进行简单的添加、修改、删除等操作。来电或者收到信息之后,手机自动搜索黑名单,将来电号码与黑名单中的号码进行比较,如果有改号码在黑名单中,则手机直接将该电话或者短信屏蔽掉。此外还有基于gps的手机防盗功能;电话录音和留言功能;隐私空间。系统的界面使用photoshop的按钮控件、xml语言界面设计使操作更简单。系统使用sqlite数据库,eclipse开发工具,android sdk开发环境,利用google android api、java语言来实现。最后,对系统采用模拟器预览效果,并对系统进行了部署和真实的体验测试。 关键词:android;智能手机;防火墙 中图分类号:tn929.53;tp393.08 目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善。移动设备的系统平台也日渐火热起来。3g时代的到来也是助推移动设备的火热发展的一个大因素。目前国内最常见的移动开发平台有symbian,iphone,windows phone以及当下正在逐步兴起的android。目前为止国内已经有很多android系统用户[1]。 1 需求分析 1.1 黑/白名单的电话和短信过滤功能分析 1.1.1 黑名单可选择模式 黑名单的有三种拦截模式:只拦截电话,只拦截短信,两者都拦截。在黑名单表中有姓名、电话、拦截模式等字段。实现原理:软件启动后有一个服务)service)在后台运行,在服务中注册有一个监听器,监听电话的状态,当有电话来时,状态会变成响铃状态,在这里可以取得来电的号码。这时遍历表中的黑名单,看是否有号码和来电号码匹配,如果匹配就是该拦截的号码,这里就把电话结束掉,并写入拦截表中,弹出通知告知有电话被拦截[2]。 短信的拦截和电话拦截不一样,有两种实现方法: (1)接收系统短信广播:当收到短信时,android系统会发出一个广播,通知收到短信,拦截短信基于android中的广播机制。android中的广播机制是所有注册了该广播监听器的程序都收到广播(只要先收到广播的应用程序没有结束掉该广播),当收到广播就会触发收到广播的事件,可以在这里处理短信,本程序采用这种方法[3]。 优点:可以拦截来信在状态栏的显示通知,适合短信拦截。 缺点:可以发展成mu,在后台悄悄的收/发短信 (2)应用观察者模式,监听短信数据库,操作短信内容:当系统收到短信时,会将短信写入短信数据库,可以注册一个监听器来监听短信数据库的变化。当短信数据库变化时就触发这个事件,在这里可以处理短信。 优点:操作方便,适合简单的短信应用。 缺点:来信会在状态栏显示通知信息。 1.1.2 白名单拦截模式 白名单拦截是指除了名单中有的号码,其它号码都拦截。这种拦截方式可以真正做到把不想接听的电话和不想收到的短信全部排除在外。白名单拦截方式和黑名单类似。流程:有电话进来,从数据库中查询所有的号码,看看是不是白名单中的号码,如果是就接听电话,否则就挂断,写入拦截数据表,弹出通知有拦截电话;短信的操作和这类似。 1.1.3 多种方式添加黑/白名单 添加黑/白名单主要是依赖android中的内容提供者(contentprovider)和内容访问者(contentresolver)的机制,在这里主要是使用了系统的contentprovider。 (1)系统联系人:可直接从系统联系人中添加名单到黑/白名单,利用上面提到的系统提供的contentprovider来访问联系人数据库,查询所有联系人的名字和号码信息。可批量添加到黑/白名单数据库。 (2)通话记录:可从通话记录中添加名单到黑/白名单,同样使用系统提供的contentprovider来访问通话记录数据库。 (3)短信记录:可从短信记录添加名单到黑/白名单,也是使用了系统提供的contentprovider来访问通话记录数据库。从短信记录添加进去的是短信的内容和号码,而不是名字。 (4)手动输入:当然,我们可以手动输入要添加的号码和名字。 1.2 关键字的短信过滤功能分析 原理分析:注册广播接收器,监听系统短信广播,操作短信内容: 当系统收到短信时,会向系统发送广播,可以注册一个监听器来接收系统的短信广播。在这里可以查看短信中包括的内容是否有我们的关键字,如果有就拦截该短信;如果没有就不做处理。关键字有系统自带关键字和手动添加关键字。 2 程序设计 2.1 基于黑/白名单的电话过滤功能设计 2.1.1 设计思路 当有来电时取得来电号码,把这个号码交给来电处理类phonehandler,在这个类里面从数据库中取出数据对比这个号码符合我
显示全部
相似文档