I want to fetch and view sms conversations?

前端 未结 5 863
天命终不由人
天命终不由人 2020-12-08 01:10
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(Uri.parse(\"content://sms/conversations/\"), null,null,null, null);     

is not wo

相关标签:
5条回答
  • 2020-12-08 01:56

    finally got what i needed!

    ContentResolver contentResolver = getContentResolver();
    final String[] projection = new String[]{"*"};
    Uri uri = Uri.parse("content://mms-sms/conversations/");
    Cursor query = contentResolver.query(uri, projection, null, null, null);
    
    0 讨论(0)
  • 2020-12-08 02:04
    String[] projection = {"thread_id", "MAX(date)", "COUNT(*) AS msg_count", "body"};
    Cursor cursor = getContentResolver().query(Telephony.Sms.CONTENT_URI, projection, "thread_id) GROUP BY (thread_id", null, null);
    
    0 讨论(0)
  • 2020-12-08 02:07

    I am not sure and i haven't tried yet, but i think this may be of your work.

    Uri uriSms = Uri.parse("content://sms/inbox");
    Cursor c = getContentResolver().query(uriSms, null,null,null,null); 
    

    I had found this earlier from this answer: How to delete an SMS from the inbox in Android programmatically?

    0 讨论(0)
  • 2020-12-08 02:08

    You can fetch sms-inbox:

    Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
    Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri,new String[] { "_id", "thread_id", "address", "person", "date","body", "type" }, null, null, null);
    startManagingCursor(cursor1);
    String[] columns = new String[] { "address", "person", "date", "body","type" };
    if (cursor1.getCount() > 0) {
       String count = Integer.toString(cursor1.getCount());
       while (cursor1.moveToNext()){
           String address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
           String name = cursor1.getString(cursor1.getColumnIndex(columns[1]));
           String date = cursor1.getString(cursor1.getColumnIndex(columns[2]));
           String msg = cursor1.getString(cursor1.getColumnIndex(columns[3]));
           String type = cursor1.getString(cursor1.getColumnIndex(columns[4]));
        }
    }
    

    You can fetch other sent items by changing the URI.

    Uri mSmsinboxQueryUri = Uri.parse("content://sms/sent");
    

    You can do that with MMS also with URI:

    RECEIVED_MMS_CONTENT_URI = "content://mms/inbox";
    SENT_MMS_CONTENT_URI = "content://mms/sent";
    

    For SMS-MMS both:

    Uri uri = Uri.parse("content://mms-sms/conversations/");
    
    0 讨论(0)
  • 2020-12-08 02:08

    This function is for fetching conversations

    private void getSMSCOnversationlist() {
        Uri SMS_INBOX = Uri.parse("content://sms/conversations/");
        Cursor c = getActivity().getContentResolver().query(SMS_INBOX, null,null, null, "date desc");
    
        String[] count = new String[c.getCount()];
        String[] snippet = new String[c.getCount()];
        String[] thread_id = new String[c.getCount()];
    
    
        c.moveToFirst();
        for (int i = 0; i < c.getCount(); i++) {
    
             count[i] = c.getString(c.getColumnIndexOrThrow("msg_count")).toString();
            thread_id[i] = c.getString(c.getColumnIndexOrThrow("thread_id")).toString();
            snippet[i] = c.getString(c.getColumnIndexOrThrow("snippet")).toString();
            Toast.makeText(getActivity(), count[i] + " - " + thread_id[i] + " - " + snippet[i]+ " - " , Toast.LENGTH_LONG).show();
            c.moveToNext();
    
        }
        c.close();
    }
    
    0 讨论(0)
提交回复
热议问题