在android中的通话记录还原
问题描述:
我正在android上创建一个应用程序,用于通话记录备份和恢复使用csv file.Backup已成功创建,但恢复所有通话记录不会从csv恢复。这里是我正在写的备份代码在android中的通话记录还原
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。
要解决:
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中的标识符。使用大写字母来启动变量名称会使您的代码难以阅读。
[编辑]
我不知道你的代码是如何编译的。请出示row
和csvReader
的声明。
我知道通话记录表的模式,我只能得到这5条记录,其次如果将有任何异常,比它去抓块我已经为它工作 – Supreet
然后请阅读我的编辑。 – Simon