如何获取短信内容

如何获取短信内容,并写出关键的Java代码

  编写一个广播接收器(ShortMessageReceiver),其中onReceiver方法的代码如下:   

 1 public class ShortMessageReceiver extends BroadcastReceiver{
 2     @Override
 3      public void onReceive(Context context,Intent intent){
 4         Bundle bundle=intent.getExtras();
 5             if(bundle !=null)
 6               {
 7                 //获取接收到的短信数据
 8                 Object[] objArray=(Object[])bundle.get("pdus");
 9                 //定义封装短信内容的SmsMessage对象数组
10                 SmsMessage[] messages=new SmsMessage[objArray.length];
11             //遍历收到的所有短信
12             for(int i=0;i<objArray.length;i++){
13                {
14             //将每条短信数据转换成SmsMessage对象
15             messages[i]=SmsMessage.createFromPdu((byte[])objArray[i]);
16             //获得发送短信的电话号码和短信内容
17             String s="手机号:"+messages[i].getOriginatingAddress()+"\n";
18             s+="短信内容:"+messages[i].getDisplayMessageBody();
19             //显示发送短息的电话号码和短息内容
20             Toast.makeText(context,s,Toast.LENGTH_LONG).show();
21             }
22         }    
23    }

  然后在AndroidManifest.xml文件中定义 ShortMessageReceiver时添加短信广播Action即可,代码如下:

1 <receiver android:name=".ShortMessageReceiver"
2         android:enabled="true">
3     <intent-filter>
4         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
5     <intent-filter>
6 </receiver>

 

posted @ 2014-03-07 09:37  我是大嘴猴  阅读(704)  评论(0编辑  收藏  举报