即使正确插入数据库后,Android SMS也不会显示

时间:2013-10-04 09:52:10

标签: android sms restore

我正在开发一个短信备份和恢复应用程序。我可以将SMS备份到CSV文件中。但是,当我尝试恢复SMS时,SMS完全存储在SMS数据库中。但它们在Android中的消息应用程序中不可见。

我正在使用内容提供商备份和恢复短信。以下是我用于恢复短信的代码。

       CSVReader reader = new CSVReader(new FileReader(csvFile));
       Uri uri = Uri.parse("content://sms/");
       String[] nextLine;
       while ((nextLine = reader.readNext()) != null) {
            ContentValues cv = new ContentValues();
            cv.put("_id", nextLine[0]);
            cv.put("thread_id", nextLine[1]);
            cv.put("address", nextLine[2]);
            cv.put("person", nextLine[3]);
            cv.put("date", nextLine[4]);
            cv.put("protocol", nextLine[5]);
            cv.put("read", nextLine[6]);
            cv.put("status", nextLine[7]);
            cv.put("type", nextLine[8]);
            cv.put("reply_path_present", nextLine[9]);
            cv.put("subject", nextLine[10]);
            cv.put("body", nextLine[11]);
            cv.put("service_center", nextLine[12]);
            cv.put("locked", nextLine[13]);
            this.getContentResolver().insert(uri, cv);
        }

请告诉我,我在做什么错。我试图在过去的一周内解决问题,但我仍然不知道我在“守则”中的错误。我在代码中缺少什么?

1 个答案:

答案 0 :(得分:1)

请勿在插页中加入_idthread_id。插入所有记录后,执行以下操作以触发对话表线程更新:

getContentResolver().delete(Uri.parse("content://sms/conversations/-1", null, null);