/**
* Created by weifeiyang on 2016/7/29 0029.
*/
import android.annotation.TargetApi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.telephony.SmsMessage;
import android.util.Log;
/**
* 短信监听
*
* @author
*/
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static MessageListener mMessageListener;
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";//只要注册声明权限即可收到、阻断
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED_ACTION)) {
//获得短信数据
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
//短信的类型, GSM与CDMA短信的解码方式不同
String format = intent.getStringExtra("format");
if (null != pdus) {
for (Object pdu : pdus) {
Log.e("pdu", "format" + format);
//23以上版本显示 createFromPdu过时,多加一个format参数即可
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu, format);
//发送号码-可以过滤需要读取的短信的发送号码
String sender = smsMessage.getDisplayOriginatingAddress();
//短信内容
String content = smsMessage.getDisplayMessageBody();
if (content.contains("你从服务器上获取到的验证码")){
mMessageListener.onReceived(content);
abortBroadcast();//中断广播的继续传递,防止优先级低的获取到
}
}
}
}
}
//回调接口
public interface MessageListener {
public void onReceived(String message);
}
public void setOnReceivedMessageListener(MessageListener messageListener) {
this.mMessageListener = messageListener;
}
}
/**
* 初始化短信监听广播
*/
private void initSMSBroadcastReceiver() {
//生成广播处理
mSMSBroadcastReceiver = new SMSBroadcastReceiver(mContent);
//实例化过滤器并设置要过滤的广播
IntentFilter intentFilter = new IntentFilter(SMSBroadcastReceiver.SMS_RECEIVED_ACTION);
//优先级最高
intentFilter.setPriority(Integer.MAX_VALUE);
//注册广播
this.registerReceiver(mSMSBroadcastReceiver, intentFilter);
mSMSBroadcastReceiver.setOnReceivedMessageListener(new SMSBroadcastReceiver.MessageListener() {
@Override
public void onReceived(String message) {
TLog.error("message" + message);
String code = ReadSmsContent.getDynamicPassword(message);
seCodeEditText.setText(code);
}
});
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有