android监听短信并判断是否未读

来源:互联网 发布:阿里云登录账号是什么 编辑:程序博客网 时间:2024/06/05 02:14
  1. final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";  
  2. BroadcastReceiver SMSbr = new BroadcastReceiver() {  
  3.    
  4.         @Override  
  5.         public void onReceive(Context context, Intent intent) {  
  6.                               Bundle bundle = intent.getExtras();  
  7.                 if (bundle != null) {  
  8.                                                 Object[] pdus = (Object[]) bundle.get("pdus");  
  9.                         final SmsMessage[] messages = new SmsMessage[pdus.length];  
  10.                         for (int i = 0; i < pdus.length; i++)  
  11.                                 messages[i] = SmsMessage  
  12.                                                 .createFromPdu((byte[]) pdus[i]);  
  13.                         if (messages.length > -1) {  
  14.                               .  
  15.                                 String smsToast = "New SMS received from "  
  16.                                                 + messages[0].getOriginatingAddress() + "\n'"  
  17.                                                 + messages[0].getMessageBody() + "'";  
  18.                                 Toast.makeText(context, smsToast, Toast.LENGTH_LONG)  
  19.                                                 .show();  
  20.                         }  
  21.                 }  
  22.         }  
  23. };  
  24.   
  25. IntentFilter SMSfilter = new IntentFilter(SMS_RECEIVED);  
  26. this.registerReceiver(SMSbr, SMSfilter);   
  27.   
  28. private boolean checkSMS() {  
  29.         // Sets the sms inbox's URI  
  30.         Uri uriSMS = Uri.parse("content://sms");  
  31.         Cursor c = getBaseContext().getContentResolver().query(uriSMS, null,  
  32.                         "read = 0"nullnull);  
  33.         // Checks the number of unread messages in the inbox  
  34.         if (c.getCount() == 0) {  
  35.                 return false;  
  36.         } else  
  37.                 return true;  
  38. }   
  39.   
  40. <uses-permission id="android.permission.RECEIVE_SMS" />     
  41. <uses-permission id="android.permission.READ_SMS" />    
原创粉丝点击