demo短信拦截---BroadcastReceiver

来源:互联网 发布:fifa数据库超级玩家 编辑:程序博客网 时间:2024/05/17 12:55
package com.demo.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 {@Overridepublic void onReceive(Context context, Intent intent) {//System.out.println("收到短信");//取出短信内容 存储在bundle里中,怎么存,怎么取Bundle bundle = intent.getExtras();//数组中的每一个元素就是一条短信Object[] objects = (Object[]) bundle.get("pdus");//把数组中的元素转换成短信对象for (Object object : objects) {SmsMessage sms = SmsMessage.createFromPdu((byte[]) object);//获取对方号码String address= sms.getOriginatingAddress();//获取短信内容String body = sms.getMessageBody();//System.out.println(address + ":" + body);if("138888".equals(address)){//拦截短信abortBroadcast();}}}}
清单文件设置权限和广播接收的优先级
<receiver             android:name="com.demo.sms.SmsReceiver">                      <!-- 设置优先级  范围:-1000~1000                设置广播接受者的优先级大于系统应用,先一步接受到广播,然后拦截-->            <intent-filter android:priority="1000">                <!-- 短信广播的action  一般是被隐藏的 -->                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>            </intent-filter>        </receiver>



0 0
原创粉丝点击