android 获取短信消息,Android开发获取短信的内容并截取短信
Android首先我们要写一个广播接收器,当我们的手机收到短信时,系统会自动发送一个广播,我们只需要接收到这条广播就可以了在广播里面,我们重写的onReceive()方法,通过里面的Intent写到的Bundle就可以拿到短信的内容清单文件里面我们必须要添加权限,否则无法接收到。为了防止我们的广播接收不到,我们自己写的广播接收器的权限必须要大,以防万一,我设置了1000。步骤详解:定义一个广播接收
Android
首先我们要写一个广播接收器,当我们的手机收到短信时,系统会自动发送一个广播,我们只需要接收到这条广播就可以了
在广播里面,我们重写的onReceive()方法,通过里面的Intent写到的Bundle就可以拿到短信的内容
清单文件里面我们必须要添加权限,否则无法接收到。
为了防止我们的广播接收不到,我们自己写的广播接收器的权限必须要大,以防万一,我设置了1000。
步骤详解:
定义一个广播接收器SmsReceiver,并继承BroadcastReceiver,同时重写onReceive()方法:
package com.nlte.phonesafe.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.telephony.SmsMessage;
import com.nlte.phonesafe.R;
public class SmsReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//判断广播消息
if (action.equals(SMS_RECEIVED_ACTION)){
Bundle bundle = intent.getExtras();
//如果不为空
if (bundle!=null){
//将pdus里面的内容转化成Object[]数组
Object pdusData[] = (Object[]) bundle.get("pdus");// pdus :protocol data unit :
//解析短信
SmsMessage[] msg = new SmsMessage[pdusData.length];
for (int i = 0;i < msg.length;i++){
byte pdus[] = (byte[]) pdusData[i];
msg[i] = SmsMessage.createFromPdu(pdus);
}
StringBuffer content = new StringBuffer();//获取短信内容
StringBuffer phoneNumber = new StringBuffer();//获取地址
//分析短信具体参数
for (SmsMessage temp : msg){
content.append(temp.getMessageBody());
phoneNumber.append(temp.getOriginatingAddress());
}
System.out.println("发送者号码:"+phoneNumber.toString()+" 短信内容:"+content.toString());
//可用于发命令执行相应的操作
/* if ("#*location*#".equals(content.toString().trim())){
abortBroadcast();//截断短信广播
}else if ("#*alarm*#".equals(content.toString().trim())){
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.guoge);
//播放音乐
mediaPlayer.start();
abortBroadcast();//截断短信广播
}else if ("#*wipe*#".equals(content.toString().trim())){
abortBroadcast();//截断短信广播
}else if ("#*lockscreen*#".equals(content.toString().trim())){
abortBroadcast();//截断短信广播
}*/
}
}
}
}
在AndroidManifest.xml注册广播接收器,并添加相应的权限:
2.1 注册广播接收器
2.2 添加权限
更多推荐
所有评论(0)