(4.3之前的)应该是调用接口,但具体的回调接口不清楚,也不清楚如何自动刷新
// 注册接收.监听短信receiver
smsReceiver = new SMSReceiver();
IntentFilter receiverFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsReceiver, receiverFilter);
/**
* 监听接收到的短信
* @author Administrator
*/
class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
// 不知道为什么明明只有一条消息,传过来的却是数组,也许是为了处理同时同分同秒同毫秒收到多条短信
// 但这个概率有点小
SmsMessage[] message = new SmsMessage[pdus.length];
StringBuilder sb = new StringBuilder();
System.out.println("pdus长度" + pdus.length);
String address = "";
for (int i = 0; i < pdus.length; i++) {
// 虽然是循环,其实pdus长度一般都是1
message[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
sb.append(message[i].getDisplayMessageBody());
}
System.out.println(sb.toString());
register_code_et.setText(sb.toString().substring(8, 14));
return;
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。