2012-11-14 64 views
4

我用這個代碼如何從Android的收件箱中讀取最後3個短信?

String msgData = ""; 
    Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null); 
    cursor.moveToFirst(); 

    do{ 

     for(int idx=0;idx<cursor.getColumnCount();idx++) 
     { 
      msgData += " " + cursor.getColumnName(idx) + ":" + cursor.getString(idx); 
     } 
    }while(cursor.moveToNext());  

..和它的工作原理,但它返回的數據比我想要的。

如何閱讀3最後的短信(只有味精和發件人)?

+0

有沒有必要發誓。 – Sam

+0

http://stackoverflow.com/questions/848728/how-can-i-read-sms-messages-from-the-inbox-programmatically-in-android – Omarj

+0

@Sam你該死的權利 –

回答

9

按日期結果排序簡單,使用限制條款:

getContentResolver().query(SMS_INBOX, new String[] {body, address}, 
    null, null, "date desc limit 3"); 
+1

如何只讀這: address:+48505073421 body:text message – user1824542

+0

Use String String =「address:」+ cursor.getString(1)+「body:」+ cursor.getString(0);' – Sam

+0

以及如何讀取onle第二個味精? – user1824542