最近在做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();
}
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();
}
解决方案 »
- jni char*转换成jstring时报Ljava/lang/ClassNotFoundException的错误
- 从log中截的一段,求大神知道错误在哪
- android如何修改app图标的名称,急!!!
- 如何实现android程序第一次登陆时显示初始界面?【菜鸟初次提问,请各位大虾多多关照>0<】
- 附上代码 求textview动态赋值
- 急:android动画 如何绕Y轴旋转,求代码
- Android Paint里的FontMetrics类的用法?
- fragment向activity传递数据时fragment创建一个回调接口
- Android实现多屏远程监控
- 开发源码
- android如何实现外接键盘和鼠标??
- Android2.3 & Android4.0
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 + }
去看看MMS 是怎么呈现短信列表的源码就知道了~