come salvare i contatti o sms alla scheda SD come file .xml o file .csv e ripristinarlo successivamente

Sto cercando di sviluppare una funzionalità nella mia app per sms e contatti di backup a SD Card come formato .xml o .csv e ripristinarlo in un secondo momento.

quindi per favore qualcuno mi dà alcuni suggerimenti o un codice di esempio o qualsiasi link di risorse correlati a questo.

  • Google map android api v2 si blocca
  • Posso escludere risorse regionali (ad es. Valori-fr) quando costruisco un particolare Android Gourmet prodotto con gradle
  • Errore del sensore vector di rotazione Android
  • Android: fare un button visibile una volta che il webview è fatto scorrere
  • Il mio progetto non support la visualizzazione di più dispositivi
  • Come distinguere i messaggi di lettura e non letto in android ListView?
  • Grazie in anticipo

  • Come get tutti i video sul dispositivo Android
  • Console per gli sviluppatori di Google Play: applicazioni di pagamento beta testate gratuitamente?
  • WebView Javascript cross domain da un file HTML locale
  • Carosello 3D per Android?
  • Progress unità in ProgressDialog
  • Impedire l'espansione della barra di stato
  • 2 Solutions collect form web for “come salvare i contatti o sms alla scheda SD come file .xml o file .csv e ripristinarlo successivamente”

    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(); } } 
     package com.vcard; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import android.app.Activity; import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.ContactsContract; import android.util.Log; import android.view.View; public class VCardActivity extends Activity { Cursor cursor; ArrayList<String> vCard ; String vfile; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); vfile = "Contacts" + "_" + System.currentTimeMillis()+".vcf"; /**This Function For Vcard And here i take one Array List in Which i store every Vcard String of Every Conatact * Here i take one Cursor and this cursor is not null and its count>0 than i repeat one loop up to cursor.getcount() means Up to number of phone contacts. * And in Every Loop i can make vcard string and store in Array list which i declared as a Global. * And in Every Loop i move cursor next and print log in logcat. * */ getVcardString(); } private void getVcardString() { // TODO Auto-generated method stub vCard = new ArrayList<String>(); cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if(cursor!=null&&cursor.getCount()>0) { cursor.moveToFirst(); for(int i =0;i<cursor.getCount();i++) { get(cursor); Log.d("TAG", "Contact "+(i+1)+"VcF String is"+vCard.get(i)); cursor.moveToNext(); } } else { Log.d("TAG", "No Contacts in Your Phone"); } } public void get(Cursor cursor) { //cursor.moveToFirst(); String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey); AssetFileDescriptor fd; try { fd = this.getContentResolver().openAssetFileDescriptor(uri, "r"); // Your Complex Code and you used function without loop so how can you get all Contacts Vcard.?? /* FileInputStream fis = fd.createInputStream(); byte[] buf = new byte[(int) fd.getDeclaredLength()]; fis.read(buf); String VCard = new String(buf); String path = Environment.getExternalStorageDirectory().toString() + File.separator + vfile; FileOutputStream out = new FileOutputStream(path); out.write(VCard.toString().getBytes()); Log.d("Vcard", VCard);*/ FileInputStream fis = fd.createInputStream(); byte[] buf = new byte[(int) fd.getDeclaredLength()]; fis.read(buf); String vcardstring= new String(buf); vCard.add(vcardstring); String storage_path = Environment.getExternalStorageDirectory().toString() + File.separator + vfile; FileOutputStream mFileOutputStream = new FileOutputStream(storage_path, false); mFileOutputStream.write(vcardstring.toString().getBytes()); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } 

    Ciò può aiutare a prendere i contatti come file VCF. Per utilizzare il backup sms utilizzare questo metodo come lo stesso per il backup di sms.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.