短信监听器的注册方法

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;

 

相关文章:

  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2022-12-23
  • 2022-01-21
  • 2021-04-04
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2021-06-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
相关资源
相似解决方案