如何备份联系人或短信,以SD卡作为.xml文件或.csv文件并在以后恢复它 [英] how to backup contacts or sms to SD card as .xml file or .csv file and restore it later

查看:213
本文介绍了如何备份联系人或短信,以SD卡作为.xml文件或.csv文件并在以后恢复它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想开发一个功能到我的应用程序的备份短信和联系人到SD卡的.xml或.csv格式并在以后恢复它。

所以请人给我一些建议或者一些样品code或与此相关的任何资源链接。

在此先感谢

解决方案

 公开的ArrayList<字符串> smsBuffer =新的ArrayList<字符串>();
    字符串smsFile =短信+CSV。
       私人无效backupSMS(){
    smsBuffer.clear();
    乌里mSmsinboxQueryUri = Uri.parse(内容:// SMS);
    光标光标1 = getContentResolver()查询(
            mSmsinboxQueryUri,
            新的String [] {_id,thread_id单,地址,人,日期,
                    身体,类型},NULL,NULL,NULL);
    // startManagingCursor(光标1);
    的String []列=新的String [] {_id,thread_id单,地址,人,日期,身体,
            类型 };
    如果(cursor1.getCount()大于0){
        字符串数= Integer.toString(cursor1.getCount());
        Log.d(计数,算);
        而(cursor1.moveToNext()){

             字符串MESSAGEID = cursor1.getString(光标1
                    .getColumnIndex(列[0]));

             字符串threadId的= cursor1.getString(光标1
                    .getColumnIndex(列[1]));

            字符串的地址= cursor1.getString(光标1
                    .getColumnIndex(列[2]));
            字符串名称= cursor1.getString(光标1
                    .getColumnIndex(列[3]));
            字符串日期= cursor1.getString(光标1
                    .getColumnIndex(列[4]));
            弦乐味精= cursor1.getString(光标1
                    .getColumnIndex(列[5]));
            字符串类型= cursor1.getString(光标1
                    .getColumnIndex(列[6]));



            smsBuffer.add(MESSAGEID +,+ threadId的+,+地址+,+名称+,+日期+,+ MSG +,
                    +型);

        }
        generateCSVFileForSMS(smsBuffer);
    }
}


 私人无效generateCSVFileForSMS(ArrayList中<字符串>名单)
{

    尝试
    {
        字符串storage_path = Environment.getExternalStorageDirectory()的toString()+文件分割符+ smsFile。
        FileWriter的写=新的FileWriter(storage_path);

        write.append(MESSAGEID,threadId的,地址,姓名,日期,味精,键入);
        write.append('\ N');

        对于(字符串S:名单)
        {
            write.append(多个);
            write.append('\ N');
        }
        write.flush();
        write.close();
    }

    赶上(NullPointerException异常E)
    {
        的System.out.println(空指针异常+ E);
         // e.printStackTrace();
     }
    赶上(IOException异常E)
    {
        e.printStackTrace();
    }
    赶上(例外五)
    {
        e.printStackTrace();
   }

}
 

I am trying to develop a feature into my app to backup sms and contacts to SD Card as .xml or .csv format and restore it later.

so please anyone give me some suggestions or some sample code or any resource links related to this.

thanks in advance

解决方案

    public ArrayList<String> smsBuffer = new ArrayList<String>();
    String smsFile = "SMS"+".csv";
       private void  backupSMS(){
    smsBuffer.clear();
    Uri mSmsinboxQueryUri = Uri.parse("content://sms");
    Cursor cursor1 = getContentResolver().query(
            mSmsinboxQueryUri,
            new String[] { "_id", "thread_id", "address", "person", "date",
                    "body", "type" }, null, null, null);
    //startManagingCursor(cursor1);
    String[] columns = new String[] { "_id", "thread_id", "address", "person", "date", "body",
            "type" };
    if (cursor1.getCount() > 0) {
        String count = Integer.toString(cursor1.getCount());
        Log.d("Count",count);
        while (cursor1.moveToNext()) {

             String messageId = cursor1.getString(cursor1
                    .getColumnIndex(columns[0]));

             String threadId = cursor1.getString(cursor1
                    .getColumnIndex(columns[1]));

            String address = cursor1.getString(cursor1
                    .getColumnIndex(columns[2]));
            String name = cursor1.getString(cursor1
                    .getColumnIndex(columns[3]));
            String date = cursor1.getString(cursor1
                    .getColumnIndex(columns[4]));
            String msg = cursor1.getString(cursor1
                    .getColumnIndex(columns[5]));
            String type = cursor1.getString(cursor1
                    .getColumnIndex(columns[6]));



            smsBuffer.add(messageId + ","+ threadId+ ","+ address + "," + name + "," + date + " ," + msg + " ,"
                    + type);

        }           
        generateCSVFileForSMS(smsBuffer);
    }               
}


 private void generateCSVFileForSMS(ArrayList<String> list)
{

    try 
    {
        String storage_path = Environment.getExternalStorageDirectory().toString() + File.separator + smsFile;
        FileWriter write = new FileWriter(storage_path);

        write.append("messageId, threadId, Address, Name, Date, msg, type");
        write.append('\n');

        for (String s : list)
        {
            write.append(s);
            write.append('\n');
        }
        write.flush();
        write.close();
    }

    catch (NullPointerException e) 
    {
        System.out.println("Nullpointer Exception "+e);
         //  e.printStackTrace();
     }
    catch (IOException e) 
    {
        e.printStackTrace();
    }
    catch (Exception e) 
    {
        e.printStackTrace();
   }

}

这篇关于如何备份联系人或短信,以SD卡作为.xml文件或.csv文件并在以后恢复它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆