android - 如何获取短信对话的联系人姓名?

标签 android sms cursor contacts

我正在使用以下查询检索最近的短信/彩信对话列表:

String[] columns={"type", "address", "date", "body", "conversation_id"};
Cursor cursor=context.getContentResolver().query(Uri.parse("content://mms-sms/conversations"), columns,  null, null, "date desc");

谁能告诉我如何在同一个查询中同时获取联系人姓名?特别是字段 ContactsContract.PhoneLookup.DISPLAY_NAME?

我的意思是,我了解如何在单独的查询中获取这些字段,但我需要在与对话相同的查询中获取它。

最佳答案

我用这个变通办法做了这个:

val uri = Uri.parse("content://sms")
val projection = arrayOf("DISTINCT $THREAD_ID", _ID, ADDRESS, BODY, DATE, TYPE)
val selection = "$THREAD_ID IS NOT NULL) GROUP BY ($THREAD_ID"

contentResolver.query(uri, projection , selection, null, "date DESC")

如果有人知道更好的方法,请分享。

关于android - 如何获取短信对话的联系人姓名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453916/

相关文章:

ios - ShareKit 短信未将 "New Message"栏与状态栏对齐

Android:content://sms/"type"值的文档?

android - 发送任何短信显示图标显示消息在Andorid中是 "pending to networks"和 "delivered to network"

c++ - 使用光标操作打印垂直直方图 C++[ncurses][解决了 w/o ncurses]

android - 在没有GPS的情况下定位android中的当前位置

android - 使用发布 key 时无法显示谷歌地图(用于发布应用程序)

android - 测试 Android 应用程序(游戏)

mysql游标使用动态限制

html - 使用客户端脚本在 Ajax HTML 编辑器中的光标位置插入文本

android - 无法解析到快照 : Firebase setValue ANDROID