首页 > 代码库 > (十六)短信广播接收

(十六)短信广播接收

一、需求:当接收到短信到来的广播的时候,获得短信的内容和发件人

二、SmsReceiver.java文件如下所示:

package com.example.smslistenerreiceiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.SmsMessage;import android.telephony.gsm.SmsManager;import android.util.Log;public class SmsReceiver extends BroadcastReceiver {    private static final String TAG = "SmsReceiver";    @Override    public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub        Log.i(TAG, "短信来了");        Object [] pdus = (Object[]) intent.getExtras().get("pdus");                for(Object pdu :pdus){            SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);            String sender = sms.getOriginatingAddress();            String body = sms.getMessageBody();            Log.i(TAG, "发件人:"+sender);            Log.i(TAG, "短信内容:"+body);                        if("5566".equals(sender)){                SmsManager sm = SmsManager.getDefault();                sm.sendTextMessage(sender, null, "短信", null, null);            }        }    }}

三、注意添加接收短信的权限

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

四、注册监听广播事件

<receiver android:name=".SmsReceiver" >            <intent-filter android:priority="2147483647" >                <action android:name="android.provider.Telephony.SMS_RECEIVED" />            </intent-filter>        </receiver>

 

(十六)短信广播接收