短信内容的获取

package com.example.administrator.mobilesafe.BroadRecastReceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;

import com.example.administrator.mobilesafe.ConstantValue;
import com.example.administrator.mobilesafe.Utils.SpUtil;

/**
 * Created by Administrator on 2017/9/20.
 */
//SmsMessage类是用来创建短信的,也只管创建,比如设置短信内容,计算短信长度。 SmsManager类是用来发送短信的。

public class SmsReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
       //1 首先判断是否开启了防盗保护
        boolean open_security = SpUtil.getBoolean(context, ConstantValue.OPEN_SECURITY,false);
        if (open_security){
            //2 获取短信内容
            //获得短信所在的对象数组(object类型) 有时字打多了短信会以多条发送
           Object []objects = (Object[]) intent.getExtras().get("puds");
            // 3在这多条短信中循环遍历 找需要的内容
            for(Object object:objects){
                  // 4获得短信对象  (可以通过数组转化为字节作为参数)
          SmsMessage sms = SmsMessage.createFromPdu((byte[]) object);
                // 5 获取短信对象的基本信息
                // 获取发送短信人的电话号码
               String nunberOfSender = sms.getOriginatingAddress();
               //获得短信内容
               String smsInfo = sms.getMessageBody();
                // 判断是否包含播放音乐所需要的关键字
                if(smsInfo.contains("#*alarm*#")){
                    // 播放音乐(MediaPlayer 可以播放)

                }

            }

        }
    }
}
/*
需求分析:

1 丢失手机收到短信(#*alerm*#)后需要去播放报警音乐
     1 接受短信的时候会发送广播 对系统的广播进行监听
     2 监听短信内容 如果内容中有#*alerm*#则播放报警音乐

*/

你可能感兴趣的:(短信内容的获取)