黑名单的拦截

时间:2021-05-02 23:23:00

如果没有拦截的话 也不要慌 对于有些手机是没有用的,所以这种去了解玩玩就可以了

 
直接上代码:
xml权限配置
 
[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.zking.laci.android22_broacast">  
  4.     <!--接收广播的权限-->  
  5. <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>  
  6.   
  7.     <application android:allowBackup="true" android:icon="@mipmap/ic_launcher"  
  8.         android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"  
  9.         android:supportsRtl="true" android:theme="@style/AppTheme">  
  10.         <activity android:name=".MainActivity">  
  11.             <intent-filter>  
  12.                 <action android:name="android.intent.action.MAIN" />  
  13.   
  14.                 <category android:name="android.intent.category.LAUNCHER" />  
  15.             </intent-filter>  
  16.         </activity>  
  17.         <receiver android:name=".MySMSReceiver">  
  18.             <intent-filter android:priority="1000"  
  19.                 >  
  20.                 <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>  
  21.             </intent-filter>  
  22.         </receiver>  
  23.     </application>  
  24.   
  25. </manifest>  
ava代码:记得新创个类
[java] view plain copy
  1. package com.zking.laci.android22_broacast;  
  2.   
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.os.Bundle;  
  7. import android.telephony.SmsMessage;  
  8. import android.util.Log;  
  9.   
  10. /** 
  11.  * Created by Laci on 2017/7/13. 
  12.  */  
  13.   
  14. public class MySMSReceiver extends BroadcastReceiver{  
  15.   
  16.     private String a;  
  17.   
  18.     @Override  
  19.     public void onReceive(Context context, Intent intent) {  
  20.         if("android.provider.Telephony.SMS_RECEIVED".equals(intent.getAction())){  
  21.             Log.i("test","来了");  
  22.             //得到短信的内容  
  23.             Bundle bundle=intent.getExtras();  
  24.             Object[] o= (Object[]) bundle.get("pdus");  
  25.             //实例化SmsMessage  
  26.             SmsMessage smsMessage[]=new SmsMessage[o.length];  
  27.             //把o里面的数据传递给smsMessage  
  28.             for (int i = 0; i < o.length; i++) {  
  29.                 smsMessage[i]=SmsMessage.createFromPdu((byte[]) o[i]);  
  30.             }  
  31.             for (SmsMessage message : smsMessage) {  
  32.                 a = message.getDisplayOriginatingAddress();  
  33.                 Log.i("test","短信发送者"+message.getDisplayOriginatingAddress()+":"+message.getDisplayMessageBody());  
  34.             }  
  35.             //如果有例如下方的电话时就直接拦截,如果没有拦截的话 也不要慌 对于有些手机是没有用的,所以这种去玩玩就可以了  
  36.             if("+86187xxxxxxxxxx4".equals(a)){  
  37.                 abortBroadcast();  
  38.                 //内容提供者  
  39.                 //删除系统收短信的数据库表  
  40.                 Log.i("test","拦截不了");  
  41.             }  
  42.         }  
  43.     }  
  44. }