Отображение смс сообщений и их сортировка

Рейтинг: 0Ответов: 2Опубликовано: 23.12.2014

Всем привет. прошу помощи т.к. сам не смог разобраться. Решил поиграться с СМС в андроиде- вытащить их, ченибудь сними поделать и т.д. Вытащить получилось - на этом все. как делать сортировку напиример не пойму, или допустим, что бы по нажатию кнопки он искал определенный текст в сообщении, а потом выводил эти сообщения.

public class MessageBox extends Activity {

// GUI Widget
Button start;
TextView lblMsg, lblNo;
ListView lvMsg;
String number;
// Cursor Adapter
SimpleCursorAdapter adapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.messagebox);

    start = (Button)findViewById(R.id.start);
    lvMsg = (ListView) findViewById(R.id.lvMsg);

 Uri inboxURI = Uri.parse("content://sms/inbox");
   String[] reqCols = new String[]{"_id", "address", "body"};
   ContentResolver cr = getContentResolver();
   Cursor c = cr.query(inboxURI, reqCols, null, null, null);
    adapter = new SimpleCursorAdapter(this, R.layout.row, c,
          new String[]{"body", "address"}, new int[]{
           R.id.lblMsg, R.id.lblNumber});
   lvMsg.setAdapter(adapter);

    start.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {

        }

    });

}   }

Ответы

▲ 1Принят

Можно как вариант просто

  Cursor c = cr.query(inboxURI, reqCols, "body='%text%", null, null);

"body like '%text%" найдет все сообщения где есть слово текст а вокруг него любые символы. если где то не правильно написал меня поправят

▲ 1
  1. Для сортировки есть ORDER BY который надо вписать в ваш query последним параметром
  2. Для поиска по SMS есть специальный недокументированный URI: content://mms-sms/search - поройтесь в исходниках :)

Update

В исходниках про поиск находится такое:

@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {
    Uri u = Uri.parse(String.format(
            "content://mms-sms/searchSuggest?pattern=%s",
            selectionArgs[0]));
    Cursor c = getContext().getContentResolver().query(
            u,
            null,
            null,
            null,
            null);

    return new SuggestionsCursor(c, selectionArgs[0]);
}