1.实现一个Receiver【收到的是PDU,需要从PDU中还原出SMSMessage】
public class SMSReceiver extends BroadcastReceiver {
public void onReceive(Context ctx, Intent intent) {
Log.d("SMSReceiver", "a message received");
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
for (SmsMessage message : messages) {
String strFrom = message.getDisplayOriginatingAddress();
String strMsg = message.getDisplayMessageBody();
Log.d("SMSReceiver","From:"+strFrom);
Log.d("SMSReceiver","Msg:"+strMsg);
}
}
}
}
2.配置应用permission,允许接收SMS。在AndroidManifest.xml中
<uses-permission android:name="android.permission.RECEIVE_SMS" />
3.配置Receiver的Intent-Filter,可以接收SMS。在AndroidManifest.xml中
<receiver android:name=".app.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
关于监听发出的SMS参考:
http://blog.chinaunix.net/u/9577/showart_1850111.html
没有评论:
发表评论