如何备份联系人或短信,以SD卡作为.xml文件或.csv文件并在以后恢复它文件、并在、备份、联系人

2023-09-13 00:34:12 作者:暮烟疏雨时光

我想开发一个功能到我的应用程序的备份短信和联系人到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();
   }

}

 
精彩推荐
图片推荐