android 拦截短信并屏蔽

package com.example.fangdaoqi;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;

public class Smsreceiveandmask extends BroadcastReceiver
{
    SharedPreferences sp;
    private String TAG = "smsreceiveandmask";   
    @Override  
    public void onReceive(Context context, Intent intent) {   
        Log.v(TAG, ">>>>>>>onReceive start");   
        sp = context.getSharedPreferences("canshu",Context.MODE_WORLD_WRITEABLE );
        String anquantel = sp.getString("tel", "");
        // 第一步、获取短信的内容和发件人   
        StringBuilder body = new StringBuilder();// 短信内容   
        StringBuilder number = new StringBuilder();// 短信发件人   
        
        Log.v(TAG, "number"+ number);
        Bundle bundle = intent.getExtras();   
        if (bundle != null) {   
            Object[] _pdus = (Object[]) bundle.get("pdus");   
            SmsMessage[] message = new SmsMessage[_pdus.length];   
            for (int i = 0; i < _pdus.length; i++) {   
                message[i] = SmsMessage.createFromPdu((byte[]) _pdus[i]);   
            }   
            for (SmsMessage currentMessage : message) {   
                body.append(currentMessage.getDisplayMessageBody());   
                number.append(currentMessage.getDisplayOriginatingAddress());   
            }   
            String smsBody = body.toString();   
            String smsNumber = number.toString(); 
            
            
            
            Log.v(TAG, "smsNumber"+ smsNumber);
            
            Log.v(TAG, "smsBody"+ smsBody);
            if (smsNumber.contains("+86")) {   
                smsNumber = smsNumber.substring(3);   
            }  
            
            String tmp[] =smsBody.split(";");
            
            for(int i=0; i<tmp.length;i++)
            {
//                System.out.println(tmp[i]);//这里调试被屏蔽的短信内容
                
                Log.v(TAG, "tmp[i]"+ tmp[i]);
            }
            
            
            
            
            // 第二步:确认该短信内容是否满足过滤条件   
            boolean flags_filter = true;   
            if (smsNumber.equals(anquantel)) {// 屏蔽该号码发来的短信   
                flags_filter = true;
                //将该机的GPS位置发送给anquantel
                SmsManager smsManager = SmsManager.getDefault();  
                smsManager.sendTextMessage(anquantel, null, "my address is ", null, null);

                Log.v(TAG, "sms_number.equals(5556");   
            }   
            // 第三步:取消   
            if (flags_filter) { 
                
                Log.v(TAG, "flags_filter");
                this.abortBroadcast();   
            }   
        }   
        Log.v(TAG, ">>>>>>>onReceive end");   
    }   




}

需要以下权限(主要是uses-permission中的权限)

        <receiver android:name=".Smsreceiveandmask">
            <intent-filter android:priority="10000">   
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />  
            </intent-filter>  
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <!---->

 

转载于:https://www.cnblogs.com/guige/archive/2012/08/06/2625879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值