I used this code
    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());    
..and it works, but it returns more data than I want.
How to read 3 last sms (only msg and sender)?
Simply sort the results by date and use the limit clause:
getContentResolver().query(SMS_INBOX, new String[] {body, address}, 
    null, null, "date desc limit 3");
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With