2012-07-02 1 views
1

Как я могу найти в папке смс и показать последнее сообщение с помощью специального номера. Например, найдите «999999999» и покажите последнее сообщение, полученное от этого номера. Есть ли способ сделать это?Поиск смс Входящие

Я должен использовать этот код, чтобы вернуть счетчик сообщений мой почтовый ящик

TextView view; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    view = (TextView) findViewById(R.id.textView1); 

    final Uri SMS_INBOX = Uri.parse("content://sms/inbox"); 
    Cursor c = getContentResolver().query(SMS_INBOX, null, null, null, null); 
    int unreadMessagesCount = c.getCount(); 
    c.deactivate(); 

    view.setText(String.valueOf(unreadMessagesCount)); 

ответ

6

Если вы хотите только последнее сообщение, отправленное конкретного использования номера это:

final Uri SMS_INBOX = Uri.parse("content://sms/inbox"); 
Cursor cursor = getContentResolver().query(SMS_INBOX, null, "address = ?", 
     new String[] {"9999999999"}, "date desc limit 1"); 
if(cursor.moveToFirst()) { 
    // Do something 
    Log.v("Example", cursor.getString(cursor.getColumnIndex("body"))); 
} 
cursor.close(); 

Второй ответ How many database columns associated with a SMS in android? - отличная ссылка для разных столбцов в СМС.

1

пытаются как:

final Uri SMS_INBOX = Uri.parse("content://sms/inbox"); 
Cursor c = getContentResolver().query(SMS_INBOX,null,null, null,"DATE desc"); 
if(c.moveToFirst()){ 
     for(int i=0;i<c.getCount();i++){ 
      String body= c.getString(c.getColumnIndexOrThrow("body")).toString(); 
      String number=c.getString(c.getColumnIndexOrThrow("address")).toString(); 
      if(number=="999999999") 
      { 
      //get message body here 
        break; 
      } 
      else 
      c.moveToNext(); 
     } 
    } 
c.close();