broadcastreceiver 广播接收者“:
清单文件:
intent-filter 设置优先级
<receiver android:name=".receiver.SmsReceiver"
>
<intent-filter
android:priority="2147483647"> Integer的最大值。
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
ctrl+shift+t open type
package com.zh.mobilesafe.receiver;
import java.util.concurrent.SynchronousQueue;
import com.zh.mobilesafe.R;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.provider.MediaStore.Audio.Media;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class SmsReceiver extends BroadcastReceiver {
/**
* 拦截短信
*/
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle extras = intent.getExtras();
Object[] objects = (Object[]) extras.get("pdus");
for (Object object : objects) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) object);
String originatingAddress = message.getOriginatingAddress();
String messageBody = message.getMessageBody();
System.out.println(originatingAddress+";"+messageBody);
if("#*alarm*#".equals(messageBody)){
abortBroadcast(); //拦截短信的接收。
}
}
}
}