2015-09-14 28 views
2

我已通過以下代碼從收件箱中的特定號碼獲取所有消息。如何檢查收件箱中的短信是已讀還是未讀

public void refreshSmsInbox() { 
     ContentResolver contentResolver = getContentResolver(); 
     Cursor smsInboxCursor = contentResolver.query(
       Uri.parse("content://sms/inbox"), null, null, null, null); 
     int indexBody = smsInboxCursor.getColumnIndex("body"); 
     int indexAddress = smsInboxCursor.getColumnIndex("address"); 
     if (indexBody < 0 || !smsInboxCursor.moveToFirst()) 
      return; 
     arrayAdapter.clear(); 
     do { 
      if (pre_address.equals(smsInboxCursor.getString(indexAddress))) { 
       String str = "SMS From: " 
         + smsInboxCursor.getString(indexAddress) + "\n" 
         + smsInboxCursor.getString(indexBody) + "\n"; 
       arrayAdapter.add(str); 
      } 
     } while (smsInboxCursor.moveToNext()); 
    } 

現在我想標記哪些短信讀取,哪些是未讀。我如何檢查哪些短信已閱讀,哪些未讀?

如何在從收件箱取回短信時檢查短信是已讀還是未讀?

+0

檢查此鏈接可能會有所幫助你.. https://looksok.wordpress.com/2013/09/07/android-tutorial-mark-sms-as-read-unread/ – Umair

+0

我已經檢查過它。但我需要從特定號碼獲取已讀和未讀消息。 –

+0

你只需要檢查''閱讀''列。值'0'表示_not read_,值'1'表示_read_。 –

回答

0

你可以用read關鍵字得到科拉姆指數:

int indexRead = smsInboxCursor.getColumnIndex("read"); 

,然後在循環中,您可以檢查它像這樣(0 = not read1 = read):

boolean isRead = smsInboxCursor.getInt(indexRead) == 1;