Android 短信按号码阅读

标签 android android-contentprovider

我正在开发一个短信应用程序。在我的应用程序中,我必须列出所有的转换。所以我使用以下 Uri。

content://mms-sms/conversations/

它工作正常。下面是我的代码 fragment 。

 Uri uri = Uri.parse("content://mms-sms/conversations/");
 Cursor c= getContentResolver().query(uri, null, null ,null,null);
 startManagingCursor(c);
 if(c.moveToFirst()){

            for(int i=0;i<c.getCount();i++){
                     body[i]= c.getString(c.getColumnIndexOrThrow("body")).toString();
                     number[i]=c.getString(c.getColumnIndexOrThrow("address")).toString();
                     c.moveToNext();
             }
    }
    c.close();

    for (int i = 0; i < body.length; i++) {
        System.out.println("body ="+body[i]);
        System.out.println("number ="+number[i]);
    }

数字打印每个对话的编号,正文打印每个对话的最后一条消息。但我想获得每个对话的完整消息,并帮助我进行特定号码的对话。

最佳答案

Conversations游标,您可以获得thread_id。获得thread_id后,继续从sms provider查询返回所有具有相同thread_id

的消息

示例:thread_id = 2

Uri SMS_INBOX = Uri.parse("content://sms");
Cursor c = getContentResolver().query(SMS_INBOX, null, "thread_id" + " = "
                + "2", null,
                "date" + " ASC");


while (c.moveToNext()){

        Log.v("BODY", c.getString(11).toString()); // 11 is the index of body with project URI

    }

关于Android 短信按号码阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11946336/

相关文章:

Android AsyncTask 解码位图并设置为图像

Android 日历提供程序 : Is there a unique identifier for events, 可在多个设备上使用吗?

android - 在内容提供者中注入(inject)一列

android - RecyclerView.Adapter notifyDataSetChanged() 使用 ContentProvider

android - 在 Android 中一次滑动即可将图库 View 移动到下一张图片?

android - Flutter Firebase和Android问题-无法初始化。找不到执行了最新(2020年9月)迁移说明的google-services.json

Android在gridview中的不同布局

android - 处理 fragment 和查看寻呼机 : can't change tag of fragment AND Recursive entry to executePendingTransactions

android - 如何获取 Chrome 隐身模式的历史记录?

android - 自定义 ContentProvider - openInputStream()、openOutputStream()