Android之——拦截短信

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46994097

这里,向大家简单介绍通过BroadcastReceiver来拦截短信的方法

1、创建短信广播接收者SmsRecevier

这个类是BroadcastReceiver的子类,具体的拦截操作在这个类中实现,我在这里只是简单的介绍一下方法,把获取到的短信信息打印出来。具体的业务逻辑就要大家自己去实现了。

具体代码如下:

package com.lyz.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.util.Log;

/**
 * 短信广播接收者
 * @author liuyazhuang
 *
 */
public class SmsRecevier extends BroadcastReceiver {
	private static final String TAG = "SmsRecevier";
	@Override
	public void onReceive(Context context, Intent intent) {
		Object[] pdus = (Object[]) intent.getExtras().get("pdus");
		for(Object pdu:pdus){
			SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])pdu);
			String body = smsMessage.getDisplayMessageBody();
			Log.i(TAG, body);
		}
	}
} 

2、注册授权信息

具体实现如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lyz.sms"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
	 <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.lyz.sms.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

          <!-- 配置广播拦截短信 -->
        <receiver android:name="com.lyz.receiver.SmsRecevier">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

大功告成,是不是和《Android之——拦截外拨电话》一样简单呢?

温馨提示:大家可以到http://download.csdn.net/detail/l1028386804/8921125拦截获取完整的代码示例

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-24 18:03:40

Android之——拦截短信的相关文章

14.拦截短信

拦截短信,播放音乐(app系统的声音,也是这逻辑) /** * 拦截短信 * * @author Kevin * */ public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Object[] objects = (Object[]) intent.getExtras().get("pdus"); for

Android安全问题 抢先拦截短信

同上篇文章一样,这里只陈述结果,代码分析稍后给出 导读:本文叙述如何先于某些伪杀毒软件.病毒.常规软件获取到短信 众所周知,android系统在收到短信息的时候会发送广播,但是此广播是有序广播,也就是说:先接收到广播的人,如果心情不好,它就不会向后传递此广播,后面的人就不会知道有短信到来 这与无序广播不同,无序广播并不是真的没有顺序(只是似乎大家习惯这么叫而已),无序广播的接收者也是排队等待广播的,只不过是在传递过程中,大家必须遵守规则,一直把消息传递给最后一个人才可以 关于无序广播与静态接收器

Android 拦截短信

public class SMSMess extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { Bundle b=arg1.getExtras(); if (b!=null){ //从data对象里获取所有的短信,并把每一条短信转成Object对象 Object[] pud_sms = (Object[])b.get("pdus"); //准备一个SmsMessa

手机卫士06_挂电话拦截短信,资产目录_来电去电_自定义吐司

1.1 反射调用系统隐藏api挂掉电话 Android 1.5之前可以通过 TelephonyManager,tm.endCall();//但是列表找不到 谷歌认为挂掉电话是危及手机根本功能的动作,所以隐藏了这个api 在1.5之后,要通过反射调用这一api才能实现 两个网站 ①www.greocide.com //搜索源码的网站 搜索TelephonyManager,查找版本最低的版本即可(越低越容易理解) 这个api被隐藏掉了,不能直接获取到TelephonyManager.对象. ②通过g

android sim 卡短信读写

由于对短信读写操作的api 被隐藏了 , 我们需要使用<Java反射机制的学习>一文中提到的反射的方法得到隐藏API .这有一个用例大家可以下载http://zhushou.360.cn/detail/index/soft_id/1608427 查看效果 android写sim卡短信 /*** * 1) byte[] smsc : 短信服务中心的地址,个人认为在复制到SIM卡过程中可以为空. * 2) byte[] pdu : 中文翻译是协议数据单元,这个参数最为重要,一会我们会做详细地解释说

Android 监听短信2种方式:Broadcast和ContentObserver

1. 基于Broadcast接受短信 1.1 原理 Android收到短信后系统会发送一个android.provider.Telephony.SMS_RECEIVED广播.把它放在Bundle(intent.Extras)中,Bundle可以理解为一个Map,短信采用"pdus"作为键,pdus应该是protocol description units的简写,也就是一组短信.Android不是一接收到短信就立刻发出广播的,他会有一定的延迟,所以就有可能会有多条短信,所以才会用数组来存

Android 趣味应用—— 短信编辑器

修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.dudon.fakesms"> <uses-permi

android之发送短信程序

首先改写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/MyLayout" android:orientation="vertical" andr

android 访问SMS短信收件箱

访问 SMS收件箱是另一个常见的需求.首先,需要将读取 SMS 的权限 <uses-permission android:name="android.permission.READ_SMS"/> 添加到描述文件中.添加此权限后就可以读取SMS收件箱中的 短消息了. 要读取 SMS 消息,必须对SMS收件箱执行查询,下面是我们的 代码清单. 布局文件 <?xml version="1.0" encoding="utf-8"?>