Android广播拦截短信并回调处理
2017-11-20 11:00
435 查看
Android广播拦截短信并回调处理
今天用android做一个接受短信验证码后直接把验证码赋值在输入框上的功能,主要操作有编写广播并设置回调,在配置清单中配置广播,在界面代码中触发调用。
1.编写自定义广播继承BroadcastReceiver并设置回调
** * 短信监听 * @author * */ public class SMSBroadcastReceiver extends BroadcastReceiver { private static MessageListener mMessageListener; public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; public static final String TAG = "SMSBroadcastReceiver"; public SMSBroadcastReceiver() { super(); } @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED_ACTION)) { Object[] pdus = (Object[]) intent.getExtras().get("pdus"); for(Object pdu:pdus) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte [])pdu); String sender = smsMessage.getDisplayOriginatingAddress(); //短信内容 String content = smsMessage.getDisplayMessageBody(); // String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(smsMessage.getTimestampMillis())); //您的验证码为2354 //过滤不需要读取的短信的发送号码 if (sender.equals(sender)) { mMessageListener.onReceived(content.substring(6,10)); //中断广播的传递 abortBroadcast(); Log.e(TAG, "onReceive: "+content.substring(6,10)); } } } } //回调接口 public interface MessageListener { public void onReceived(String message); } public void setOnReceivedMessageListener(MessageListener messageListener) { mMessageListener = messageListener; } }
2.在配置清单中配置广播
<receiver android:name=".util.SMSBroadcastReceiver" />
3.在界面代码中触发调用
private SMSBroadcastReceiver mSMSBroadcastReceiver;
//生成广播处理 mSMSBroadcastReceiver = new SMSBroadcastReceiver(); //实例化过滤器并设置要过滤的广播 IntentFilter intentFilter = new IntentFilter(ACTION); intentFilter.setPriority(Integer.MAX_VALUE); //注册广播 registerReceiver(mSMSBroadcastReceiver, intentFilter); mSMSBroadcastReceiver.setOnReceivedMessageListener(new SMSBroadcastReceiver.MessageListener() { @Override public void onReceived(String message) { //给输入框赋值 et_messageNumber.setText(message); } });
相关文章推荐
- android--广播及短信拦截
- Android利用广播拦截短信
- android 使用广播接收者监听短信和拦截外拨电话
- Android -- 怎么发出和接收广播, Broadcast, 电话拨号拦截,短信拦截
- android131 360 05 手势触摸滑动,sim卡,开机启动的广播,手机联系人,SharedPreferences,拦截短信
- 在通过android的广播机制拦截短信的实现过程中遇到的问题
- Android广播之九——拦截短信
- Android之广播接收者获取短信并实现短信拦截
- Android广播——短信拦截
- Android终止广播实现短信拦截
- android 使用广播 接收和拦截 android系统短信
- Android——BroadcastReceiver 广播 短信拦截
- Android广播和接口交互回调消息处理
- android 使用广播接收者监听短信和拦截外拨电话
- android 使用广播接收者监听短信和拦截外拨电话
- android 使用广播 接收和拦截 android系统短信
- Android 利用广播实现指定号码的短信的拦截 附源码下载链接
- Android 广播接收者 短信拦截
- Android——BroadcastReceiver 广播 短信拦截
- android 使用广播接收者监听短信和拦截外拨电话