PhoneGap Andriod短信拦截,并发通知到消息栏

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>


 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值