Android监听短信的2种方式
(1)基于Broadcast接受短信
Android收到短信后系统会发送一个android.provider.Telephony.SMS_RECEIVED广播。把它放在Bundle(intent.Extras)中,Bundle可以理解为一个Map,短信采用"pdus"作为键,pdus应该是protocol description units的简写,也就是一组短信。Android 收到短信 会有一定的延迟,所以就有可能会有多条短信,所以才会用数组来存放。
(2)基于ContentObserver监听短信
原理是通过监听短信数据库,操作短信内容。
对ContentObserver的介绍:
“ContentObserver 目的是观捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器,相应地ContentObserver也分为“表“ContentObserver、“行”ContentObserver,当然这是与它所监听的Uri MIME Type有关的。”
先不深究更加底层的内容,从表面上我们可以知道ContentObserver可以获取Uri引起的数据库的变化,短信的Uri为:
发送短信:content://sms/outbox
接收短信:content://sms/inbox
知道Uri后我们就可以获取到短信的内容了。
3.木马病毒的预防
(1)安装杀毒软件和个人防火墙,并及时升级。
(2)把个人防火墙设置好安全等级,防止未知程序向外传送数据。
(3)可以考虑使用安全性比较好的浏览器和电子邮件客户端工具。
(4)不要执行任何来历不明的软件
(5)不要随意打开邮件附件。现在绝大部分木马病毒都是通过邮件来传递的,而且有的还会连环扩散,因此对邮件附件的运行尤其需要注意。
(6)将资源管理器配置成始终显示扩展名将Windows 资源管理器配置成始终显示扩展名,一些文件扩展名为vbs 、shs 、pif 的文件多为木马病毒的特征文件,如果碰到这些可疑的文件扩展名时就应该引起注意。
(7)尽量少用共享文件夹如果因工作等原因必须将电脑设置成共享,则最好单独设置一个共享文件夹,把所有需共享的文件都放在这个共享文件夹中,注意千万不要将系统目录设置成共享。
开始操作
1.1首先我们使用(D:\android\eclipse)“eclipse”打开(目录D:\android\qwe\smsvirus-短信转发)名为“smsvirus”的实验源代码
1.6 AndroidManifest文件
AndroidManifest文件的功能是声明应用程序中的组件。Android应用程序必须在AndroidManifest.xml文件中声明它的组件,只有这样相应的组件才能被实例化。在发布应用时,这个文件也会被打包到Android的.apk文件中。AndroidManifest.xml文件是每个Android程序所必须的,位于Android工程的根目录中,描述了Package中的全局数据,包括其中的组件(如Activities、Services等),各自的实现类,各种能被处理的数据和启动位置等。如果一个组件在该文件中没有相应的标记与之对应,它将不能被运行。具体含义如下:
//声明命名空间,该声明使标准Android属性在该文件中可用,这些属性为文件中的XML提供大部分的数据
//application元素确定了程序包内所有应用层面上可用的组件和属性。
//acitvity元素的name属性指定了实现这个Activity的Activity子类。Icon和label属性指向此Activity要展示给用户的图标和标签资源。
//intent-filter元素是一个IntentFilter的形式声明所支持的特定的一组Intent值。还可以在此属性(attributes)进行赋值以支持唯一的标签、图标等。
在manifest的节点下面可以放置一下内容:
:声明一个安全授权,以限制可以访问该程序包内组件和特有功能(feature)的应用;
:声明程序包内应用级别组件的根节点,该节点能够描述应用程序的全局默认属性,如标签、图标、主题及所需的权限;
:声明该组件可以测试自己或者别的程序包的代码;
:活动(Activity)应用与用户交互的最主要机制。在应用运行时,第一个屏幕就是Activity。
无论活动是外部课件还是仅在程序包中使用,在Manifest中每一个活动必须再定义一个标签。否则,就无法启动该活动。