4

我正在实现这里讨论的方法:如何在 Android 中读取彩信数据?

我正在尝试将 SMS 和 MMS 读入单个列表视图。我做得很好,但是当我尝试排序时,我将所有 SMS 排序在一起,然后将所有 MMS 排序在一起。

这是我的代码:

Cursor smsCursor = getContentResolver().query(Uri.parse("content://mms-sms/conversations/"), null, null, null, "date DESC");

谁能告诉我如何结合这两个来源或如何将 MMS 结合到 SMS 对话中,就像内置的 Android 应用程序一样?

编辑:我注意到短信的日期比彩信的日期多几个数字。

编辑2:像这样添加“julianday()”:

Cursor smsCursor = getContentResolver().query(Uri.parse("content://mms-sms/conversations/"), null, null, null, "julianday(date) DESC");

使彩信显示在列表顶部。

4

2 回答 2

7

尝试normalized_date desc代替date desc订单。

它应该工作。

于 2012-09-08T15:52:41.270 回答
0

这里真正的问题似乎是在数据库中,日期的存储方式与 SMS 和 MMS 的存储方式不同。

因此,您需要首先查询数据库以查找“日期”字段。(不是 normalized_date 会在某些设备上崩溃)。

然后在 Java 中以编程方式对您的列表进行排序,考虑到对于 MMS,日期需要乘以 1000,如下所述: 如何从 content://mms 中检索 mms 的日期。* 或者这里的 mms 发送/接收日期始终是 1970

于 2015-10-01T09:40:28.340 回答