短信导入不显示

sciolist 2011-11-30 05:16:20
最近在做Android 里面的短信(SMS)导入/导出的功能,就是导出到XML里面,再恢复回去。不过在导入的时候,明明已经插入进SQLite数据库了,可是在短信列表里面死活就是不显示出来~

在不指定id的情况下,如果我用手机收到一条短信的话(该短信id为1),其他刚才导入的短信也都显示出来了,真是奇怪~

难道是我导入短信的时候有什么标识、字段没有插完整?求解。

下面是我导入的代码(部分):

private void restoreMessage() {
ContentResolver cr = getContentResolver();
for (int i : result) {
Message message = list.get(i);
try {
// 主题
if (message.getId() == message.getThread_id()) {
Uri threadUri = Sms.addMessageToUri(cr, Sms.CONTENT_URI, message.getAddress(),
message.getBody(), message.getSubject(),
Long.valueOf(message.getDate()), true, true);
for (int j = 0; j < result.size(); j++) {
Message tmp = list.get(j);
// 跳过当前
if (tmp.getId() == message.getId()) {
continue;
}
if (tmp.getThread_id() == message.getId()) {
Sms.addMessageToUri(cr, threadUri, tmp.getAddress(), tmp.getBody(),
null, Long.valueOf(tmp.getDate()), true, false,0);
}
}
}

} catch (Exception e) {
Log(e.getStackTrace());
}
}
Toast.makeText(getApplicationContext(), result.size() + " imported.", Toast.LENGTH_SHORT)
.show();
}
...全文
314 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sciolist 2011-12-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xing376688 的回复:]

a.好在这个问题我自己已经解决了,是content URI 地址错误导致的。

b.在不指定id的情况下,如果我用手机收到一条短信的话(该短信id为1),其他刚才导入的短信也都显示出来了,真是奇怪~

不是说地址错了么,为什么现象b还会插入?
[/Quote]

去看看MMS 是怎么呈现短信列表的源码就知道了~
安卓android 2011-12-21
  • 打赏
  • 举报
回复
a.好在这个问题我自己已经解决了,是content URI 地址错误导致的。

b.在不指定id的情况下,如果我用手机收到一条短信的话(该短信id为1),其他刚才导入的短信也都显示出来了,真是奇怪~

不是说地址错了么,为什么现象b还会插入?
千里于野 2011-12-21
  • 打赏
  • 举报
回复
我也在做这个,之前用数据库操作,结果不能insert到threads里面去,急死了

谢谢楼主分享这个方法,顺带求分,thanks
sciolist 2011-12-08
  • 打赏
  • 举报
回复
做等 1++ 个回复以便结贴,散分~


提示信息

您分配的分数和总分不相符,请重新分配!
sciolist 2011-12-08
  • 打赏
  • 举报
回复
我察,csdn 的人都到哪里去了???

好在这个问题我自己已经解决了,是content URI 地址错误导致的。

看了下位于telephony 下 Sms 源码得到的答案,使用Sms.Inbox.addMessage() 方法导入即可。

代码如下:

371 + if (message.getType() == Sms.MESSAGE_TYPE_INBOX) {
372 + Sms.Inbox.addMessage(cr, message.getAddress(), message.getBody(), null,
373 + Long.valueOf(message.getDate()), true);
374 + } else {
375 + Sms.Outbox.addMessage(cr, message.getAddress(), message.getBody(), null,
376 + Long.valueOf(message.getDate()), true, -1L);
377 + }

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧