package com.test1000;
import com.test1000.cordovaExample;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
public class SMSReceiver extends BroadcastReceiver{
public static int TEST_ID=1;
private NotificationManager m_notificationManager;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i("start", "start start");
Bundle bundle=intent.getExtras();
Object messages[]=(Object[]) bundle.get("pdus");
if(messages!=null&&messages.length>0){
SmsMessage smsMessage[]=new SmsMessage[messages.length];
for(int n=0;n<smsMessage.length;n++){
smsMessage[n]=SmsMessage.createFromPdu((byte[]) messages[n]);
}
for(SmsMessage message:smsMessage){
String content=message.getMessageBody();//获取短信内容
String sender=message.getOriginatingAddress();//获取发件人的号码
Log.i("content", content);
Log.i("sender", sender);
if(content.contains("1")){
this.abortBroadcast();
System.out.println("有新短信被拦截,拦截内容为"+content);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification mNotification = new Notification(R.drawable.ic_launcher, "new message", System.currentTimeMillis());
mNotification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_NO_CLEAR;//设置图标自动清除或不可清除
mNotification.setLatestEventInfo(context.getApplicationContext(), "通知测试",
"通知测试成功", PendingIntent.getActivity(context, 0,new Intent(context, cordovaExample.class), 0));
mNotification.flags|=Notification.FLAG_AUTO_CANCEL;
mNotification.defaults |= Notification.DEFAULT_SOUND;
mNotificationManager.notify(TEST_ID,mNotification);
}
}
}
}
public void clearNotification(String tag) {
m_notificationManager.cancel(tag.hashCode());
}
/**
* Removes all Notifications from the status bar.
*/
public void clearAllNotifications() {
m_notificationManager.cancelAll();
}
}
在AndroidManifest.xml application里面加入侦听.
<receiver android:name=".SMSReceiver">
<intent-filter android:priority="10000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>