经过测试,Android中是可以拦截短信的,解决方案如下:
package com.tigertian.sms;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("SMSReceiver, isOrderedBroadcast()="
+ isOrderedBroadcast());
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
if(smsMessage[n].getMessageBody().contains("hahaha")){
this.abortBroadcast();
}
System.out.println(smsMessage[n].getOriginatingAddress()+" "+smsMessage[n].getMessageBody()+" "+smsMessage[n].getIndexOnIcc());
}
}
}
<receiver android:name=".SMSReceiver">
<intent-filter android:priority="10000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
上面的代码是一个消息监听,监听接收短信的消息。我们可以从控制台打印信息里面看到,他是一个OrderedBroadcast,根据这一点我们就可以对短信机制进行拦截。如何拦截呢?
首先要声明一个消息监听器,同时根据上面的配置文件需要在AndroidManifest.xml中配置好,注意它的优先级是10000,这一点很关键,因为OrderedBroadcast是根据优先级来传递消息的,优先级越高越先获取到消息,待处理完后才会传递给下一个监听器,如果当前监听器退出广播,那么后面的所有监听器都将无法收到消息。
其次我们需要实现onReceive方法,根据上面的代码,我们可以从bundle中拿到短信内容并还原成SmsMessage,这样我们可以根据特定条件来判断哪些是需要我们拦截并且不要让用户知道的,哪些是我们可以放行的。需要我们拦截的短信,我们可以在收到后直接abortBroadcast()(上面的代码中是判断当短信内容包含hahaha的时候直接拦截),这样系统收件箱将无法接收到该条短信,继而也就不会有notification去通知用户。
至此,应用编写好之后,短信拦截功能就完成了,当然基于此还可以做一些其他功能,这方面就看需求了。注意,优先级相同,则根据包名依次传递广播。
想删除收件箱中已存在的短信,请参考Android源码SmsProvider类,可以在你的应用中使用ContentProvider机制进行操作。
原文地址:http://www.blogjava.net/TiGERTiAN/archive/2011/01/23/343399.html
分享到:
相关推荐
SMS 信令推送是基于 Push 方式的解决方案,服务器有新消息时,发送 1 条类似短信的信令给客户端,客户端通过拦截信令,解析消息内容 / 向服务器获取信息。优点是可以实现完全的实时操作,但缺点是成本高(主要是短信...
在Android系统中,短信拦截是一项重要的安全功能,允许应用程序在用户接收到短信时进行操作,例如过滤垃圾信息或自动响应特定消息。然而,从Android 4.4(KitKat)版本开始,Google对短信接收机制进行了重大改动,以...
最后,源码中的论文部分可能包括对项目背景的介绍,技术选型的解释,实现过程的详细描述,以及可能遇到的问题和解决方案。这部分内容有助于理解项目的整体架构和设计思路。 总的来说,这个毕业设计项目涵盖了...
该论文详细阐述了Android平台下短信拦截功能的开发,旨在提供一个安全、实用的解决方案,保护用户免受垃圾短信的困扰。 在第一章绪论中,作者首先介绍了课题的背景,强调了随着智能手机的普及,短信通信仍然是日常...
android4.4的内核发生了变化,以往的拦截机制存在了失效的问题,无法...解决方案目前存在两种:一、重新定义短信收发模块替换现有的。二、对原有的拦截机制进行修改。具体代码见文档,根据实际情况自行扩展
因此,开发有效的短信防火墙,特别是针对Android系统的解决方案,显得尤为迫切。 ### 结论 综上所述,基于Android系统的短信防火墙设计通过整合黑白名单和贝叶斯分类器的过滤策略,有效应对了垃圾短信的挑战。它...
### 详解基于Android App安全登录认证解决方案 #### 一、登录认证方式概述 近年来,随着移动互联网技术的飞速发展,智能手机用户数量急剧增加,各式各样的应用程序(App)不断涌现。这些App往往需要与后端系统进行...
总之,"系统短信源码库"是一个宝贵的资源,对于想要深入理解Android短信服务、提高开发技能或构建自定义短信解决方案的开发者来说,它是必不可少的学习材料。通过仔细研究这些源码,开发者能够掌握更多的技术细节,...
总之,设计和实现Android平台的智能防火墙系统是一个复杂的过程,需要充分理解Android系统的架构和安全策略,并采用创新的解决方案来实现特定的功能。通过设置黑白名单和过滤关键词,智能防火墙系统能够帮助用户有效...
这篇学位论文——“基于Android短信平台的管理与开发”深入探讨了如何利用Android系统来构建一个高效、安全且用户友好的短信管理应用程序。 首先,论文重点讨论了Android开发的基础理论和技术,包括Java语言的使用...
【基于ANDROID的SMS加密设计与实现】 ...然而,由于原文内容的限制,这里无法详述所有的技术细节和实验结果,但可以看出,作者深入研究了Android平台的特点,并结合现有的加密技术,提出了一套切实可行的解决方案。
Android 手机安全防护系统是手机安全领域的一种解决方案,旨在保护用户的手机免受恶意攻击和数据泄露。该系统主要由三个模块组成:文件监控模块、手机防盗模块和短信加密模块。 文件监控模块的主要功能是监控手机中...
总结来说,这篇论文提出了一个基于Android系统的移动终端数据安全解决方案,通过安全联系人机制和短信拦截技术,提高了设备在丢失或被盗情况下的数据保护能力,同时强化了对SIM卡更换的管理,确保只有授权用户才能...
针对“无法运行”这个问题,我们先来理解一下短信和彩信的运作机制,然后分析可能存在的问题,并提供一些解决方案。 短信(Short Message Service,SMS)是一种基于GSM、3G、4G等移动网络的通信方式,用于发送文字...
在移动通信领域,手机短信(Short Message Service,SMS)是一种广泛使用的通信方式,它允许用户通过手机设备...无论是开发简单的个人项目还是复杂的商业解决方案,理解和掌握手机短信编程都是一项基础且重要的技能。
总的来说,Android手机来电防火墙是一个综合性的安全解决方案,涵盖了电话和短信的管理、设备防盗、通话记录保护等多个方面。它的实现依赖于Android系统的API,结合数据库管理、地理位置服务、音频处理等技术,为...
总的来说,"基于Android的移动应用安全卫士源码"不仅为我们提供了Android安全编程的实际示例,还让我们有机会学习到如何构建一个完整的安全解决方案。通过深入研究这些源码,开发者不仅可以提升自己的Android编程...
Android平台手机防盗系统的安全解决方案是针对日益增长的Android智能手机用户所面临的安全问题提出的。随着3G技术的进步和Android系统的普及,Android设备已经成为个人生活和工作的重要工具,存储了大量的敏感信息。...
9. **界面与用户体验**:优秀的"message_handle"解决方案还会注重用户体验,提供清晰易用的界面设计,让用户在操作过程中感到舒适便捷。 10. **兼容性与更新**:考虑到Android系统的多样性和版本更新,"message_...