Android中关于短信侦听的一个类

这是一个对短信进行侦听的一个类,在一个项目中用到了,只要短信中包含你设置的关键字,就会以notifaction的形式提醒你

 

SMSReciver.java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

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.widget.Toast;

public class SMSReceiver extends BroadcastReceiver
{
 /*当收到短信时,就会触发此方法*/
 public void onReceive(Context context, Intent intent)
 {
  Bundle bundle = intent.getExtras();
  Object messages[] = (Object[]) bundle.get("pdus");
  SmsMessage smsMessage[] = new SmsMessage[messages.length];
  for (int n = 0; n < messages.length; n++)
  {
   smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
  }
  String s = smsMessage[0].getMessageBody();
  String f = "开会|会议|生日|提醒|聚餐|聚会";
  Pattern p = Pattern.compile(f);
  Matcher m = p.matcher(s);
  boolean res = false;
  res = m.find();
  
  
  if( res == true ){
   Intent in= new Intent(context,NoteActivity.class);
         in.putExtra("sms", "短信内容:\n"+s);
         PendingIntent pending = PendingIntent.getActivity(  
              context, 0,in, 0);  

             Notification noticed = new Notification();  
            noticed.icon = R.drawable.ic_launcher; 
             noticed.tickerText = "重要通知";  

            noticed.defaults = Notification.DEFAULT_SOUND; // 使用默认的声音  
          

          noticed.setLatestEventInfo(context, "重要短信提醒",  
                     s, pending);  
             NotificationManager noticedManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); 
             noticedManager.notify(0, noticed);
  }
  
 


  
  
 }
}


 

下面是AndroidManifest.xml中的注册信息

 

    

 <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yarin.android.Examples_04_05"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity01"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver android:name=".SMSReceiver" android:enabled="true">
<intent-filter> 
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter> 
</receiver> 
</application>
<uses-sdk android:minSdkVersion="5" />
</manifest> 
 


 

 

 

 

 

 

 

 

 

 


 

你可能感兴趣的:(Android中关于短信侦听的一个类)