zoukankan      html  css  js  c++  java
  • 通过广播者实现短信的拦截

    在Android中的四大组件中的广播接收者(BroadcastReceiver):可以用于监听 / 接收 应用发出的广播消息,并做出响应。

    所以,通过这个自然而然的可以实现短信的拦截。

    先定义一个SmsListenerRecevicer类来继承BroadcastReceiver。在里面实现短信的拦截

     1 package cn.starry.smsListener;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.telephony.SmsMessage;
     7 
     8 public class SmsListenerRecevicer extends BroadcastReceiver {
     9 
    10     @Override
    11     public void onReceive(Context context, Intent intent) {
    12         Object[] objects = (Object[]) intent.getExtras().get("pdus");
    13         for (Object pdu : objects) {
    14             //获取smsmessage实例
    15             SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu);
    16             //获取发送短信的内容
    17             String boby = message.getMessageBody();
    18             //获取发送者
    19             String address = message.getOriginatingAddress();
    20             System.out.println("body:" + boby + ",address:" + address);
    21         }
    22         
    23     }
    24 
    25 }

    然后在清单文件里声明该广播接收者。

    由于出于安全考虑,在action里的name中不会出现

    android.provider.Telephony.SMS_RECEIVED

    所以需要自己自己打出来,不过复制粘贴也行。

    最后需要添加"RECEIVE_SMS"权限就行了

  • 相关阅读:
    java的语法基础(二)
    MyBatis 的好处是什么?
    python中字符串的编码和解码
    Spring的简介和优点?
    相对于Statement,PreparedStatement的优点是什么?
    MyBatis 的好处是什么?
    .final finally finalize区别
    final类有什么用
    web广泛用到的技术:
    JDK,JRE,JVM三者的关系
  • 原文地址:https://www.cnblogs.com/xingkongyihao/p/7424969.html
Copyright © 2011-2022 走看看