使用广播接收者接收短信

1、如果想使用广播接受者接收短信,必须先启动activity;如果不启动activit的话在4.0以上的版本是无效的,这是为了安全考虑

2、清单文件

1  <receiver android:name="com.examplezyh.getsmsmsg.SmsReceiver">
2             <intent-filter android:priority="1000">
3                 <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
4             </intent-filter>
5         </receiver>

3、权限清单设置

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

4、java代码

 1 package com.examplezyh.getsmsmsg;
 2 
 3 import android.content.BroadcastReceiver;
 4 import android.content.Context;
 5 import android.content.Intent;
 6 import android.telephony.SmsMessage;
 7 
 8 public class SmsReceiver extends BroadcastReceiver {
 9 
10     @Override
11     public void onReceive(Context context, Intent intent) {
12         // TODO Auto-generated method stub
13          System.out.println("收到短信了");
14         //pdus是获取短信的内容的键
15         Object[] pdus = (Object[])intent.getExtras().get("pdus");
16         for(Object pdu : pdus){
17             SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])pdu);
18             
19             String body = smsMessage.getMessageBody();
20             String sender = smsMessage.getOriginatingAddress();
21             
22             System.out.println("body=" + body);
23             System.out.println("sender=" + sender);
24         }
25             
26     }
27 
28 }

 

posted @ 2016-03-24 16:38  zhongyinghe  阅读(621)  评论(0编辑  收藏  举报