0

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

我正在使用 Content Provider 来备份和恢复 SMS。以下是我用于恢复 SMS 的代码。

       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 周的问题,但我仍然不知道我在代码中的错误。我在代码中遗漏了什么?

4

1 回答 1

1

不要在插入中包含_id和。thread_id插入所有记录后,执行以下操作以触发会话表线程更新:

getContentResolver().delete(Uri.parse("content://sms/conversations/-1", null, null);
于 2014-02-01T01:04:29.117 回答