android中的呼叫日志恢复

android中的呼叫日志恢复,android,Android,我正在android中创建一个应用程序,用于使用csv文件备份和还原呼叫日志。备份已成功创建,但在还原时,所有呼叫日志均未从csv还原。以下是我为备份编写的代码 while((row = csvReader.readNext()) != null) { RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]); } pu

我正在android中创建一个应用程序,用于使用csv文件备份和还原呼叫日志。备份已成功创建,但在还原时,所有呼叫日志均未从csv还原。以下是我为备份编写的代码

 while((row = csvReader.readNext()) != null)
                     {
                    RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);

                    }



public  void RestoreCallLogs(String Name,String number,String Date,String Type,String Duration){
        ContentValues values = new ContentValues();
        values.put(CallLog.Calls.NUMBER, number);
        values.put(CallLog.Calls.DATE, Date);
        values.put(CallLog.Calls.DURATION,Duration);
        values.put(CallLog.Calls.TYPE, Type);

        if(Name!="Unknown")
         values.put(CallLog.Calls.CACHED_NAME, Name);
        getContentResolver().insert(CallLog.Calls.CONTENT_URI, values);
    }

您有一个try-catch块,它隐藏了此处生成的异常:

RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);
在不了解try-catch的功能的情况下,不应使用try-catch

要修复:

String[] row;
while((line = csvReader.readNext()) != null){
    row = line.split(",");
    RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);
}
请阅读
.split()
的文档。您需要做额外的工作来处理联系人记录字符串中的逗号和其他非字母数字字符。您还假设csv仅包含5列。你能保证吗

最后,请使用公认的Java标识符命名约定。使用大写字母开始变量名会使代码难以阅读

[编辑]


我不知道你的代码是如何编译的。请显示
csvReader
的声明

我知道调用日志表的模式,我只得到这5条记录,其次,如果有任何异常,它将转到我为其工作的catch块