短信接收 Android

第一次写博客,就写关于Android4.0以上的短信接收吧。因为现在做的项目用到,所以写出来记录下。以免以前忘记



/**
 * 短信接收广播
 * @author Administrator
 *
 */
public class SmsReceive extends BroadcastReceiver {


EditText metInput;


/**因为我做的是需要自动输入短信验证码,所以需要传入个EditText*/
public SmsReceive(EditText metInput) {
super();
this.metInput = metInput;
}


@Override
public void onReceive(Context arg0, Intent intent) {
Bundle _bundle = intent.getExtras();
if(_bundle != null){
Object[] _pdus = (Object[])_bundle.get("pdus");
for(Object x:_pdus){
SmsMessage _smsMessage = SmsMessage.createFromPdu((byte[])x); 
String _boyd = _smsMessage.getDisplayMessageBody();//从这里,可以得到短信内容

}
}
}
}



这样就写好一个广播了。写好广播了,然后还需要进行添加一个过滤器IntentFilter



mSmsReceive = new SmsReceive(metInputYZM);
IntentFilter _intFilter = new IntentFilter();
_intFilter.setPriority(1000);  //这个是设置广播的优先级的。从0-1000,1000是为最大的。但是在有些操作系统上,是收不到短信广播的,比如小米。。。。。所以不能收到短信,不要灰心,有可能是操作系统问题
_intFilter.addAction("android.provider.Telephony.SMS_RECEIVED");  //这个是确定接收广播类型为短信接收广播
registerReceiver(mSmsReceive, _intFilter); //然后不要忘记在Context中注册好广播,如果不需要常驻,那么记得注销掉广播

                 /*
if(mSmsReceive != null)
   unregisterReceiver(mSmsReceive);*/

还有,别忘记在AndroidManiifes添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS" />

当然,如果你想常驻型的广播,那么久需要在AndroidManiifes中注册了。

经过本人确定,实验,是可以获取到短信的

    





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值