安卓短信监听

短信监听器的注册方法

InnerSmsReveiver receiver = new InnerSmsReveiver();
IntentFilter smsFilter = new IntentFilter();//new一个过滤器,设置过滤短信的方法
smsFilter.addAction("android.provider.Telephony.SMS_RECEIVED");//固定写法   设置短信的过滤方法
smsFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);//固定写法  设置获取短信     的级别  为最高
registerReceiver(receiver, smsFilter);//开启短信监听  receiver为短信  smsFilter为短信的过滤器

短信的内容提供者

private class InnerSmsReveiver extends BroadcastReceiver {

       public void onReceive(Context context, Intent intent) {
            Object[] objs = (Object[]) intent.getExtras().get("pdus");//对收到的广播进行匹配,找到数据短信的广播
            for(Object obj: objs){
                SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) obj);//得到短信的所有数据
                String body = smsMessage.getMessageBody();//得到短信的内容
         String sender = smsMessage.getOriginatingAddress();//得到短信的地址(号码),可以用来作为标记,设置黑名单或白名单等等
         这里可以设置短信内容的过滤方法,比如 包含一些敏感词或者 abortBroadcast();//对短信进行拦截,最好是设置一些条件,符合条件的进行拦截(拦截后,系统收不到短信) } } } }

 如果不需要对短信监听,要记得关闭

unregisterReceiver(receiver);
        receiver = null;
原文地址:https://www.cnblogs.com/fengchuxiaodai/p/5170208.html