2010-11-01 110 views
0

我的應用程序是聯繫人列表,我想存儲在SD卡 我的聯繫人數據,但我怎麼可以存儲在SD卡中的數據,或者如果我將使用數據庫的話,我要如何存儲它或使用簡單的文件比我要如何保存它如何在SD卡寫入數據

thanx提前

回答

1

如果你真的想要一個簡單的文件存儲到SD卡上,你可以像這樣:

File sdCard = Environment.getExternalStorageDirectory(); // get a handle to the SD card 
File myFile = new File(sdCard, "test"); // get a file handle so a single file 

現在你可以使用一個BufferedWriter,例如,或任何其他Java方法寫入該新文件。

您的應用程序應該寫入SD卡,當然,加入WRITE_EXTERNAL_STORAGE的權限。

按照慣例,所有應用程序數據應該存儲在SD卡上的以下目錄:Android/data/your.package.name/files/

另外請注意,你應該明確地檢查SD卡是否實際存在,或者如果它的可寫,等等。有關文檔,請參閱here

1

可以使用Environment.getExternalStorageDirectory()獲取路徑,然後使用這個路徑打開一個文件。

您可能需要具備以下權限集:使用下面的代碼

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
0

存儲聯繫人數據到設備的SD卡。

VCardActivity.java:-

public class VCardActivity extends Activity { 
     Cursor cursor; 
     ArrayList<String> vCard; 
     String vfile; 
     static Context mContext; 

     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      mContext = VCardActivity.this; 
      getVCF(); 
     } 

     public static void getVCF() { 
      final String vfile = "Contacts.vcf"; 
      Cursor phones = mContext.getContentResolver().query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
            null, null, null); 
      phones.moveToFirst(); 
      for (int i = 0; i < phones.getCount(); i++) { 
        String lookupKey = phones.getString(phones 
          .getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); 
        Uri uri = Uri.withAppendedPath(
        ContactsContract.Contacts.CONTENT_VCARD_URI, 
               lookupKey); 
        AssetFileDescriptor fd; 
        try { 
          fd = mContext.getContentResolver().openAssetFileDescriptor(uri, "r"); 
          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 mFileOutputStream = new FileOutputStream(path, 
            true); 
          mFileOutputStream.write(VCard.toString().getBytes()); 
          phones.moveToNext(); 
          Log.d("Vcard", VCard); 
        } catch (Exception e1) { 
          // TODO Auto-generated catch block 
          e1.printStackTrace(); 
        } 
      } 
     } 
} 

,看看下面的鏈接瞭解更多信息。

Export Contacts as a VCF file

並在下面給出權限到您的AndroidManifest.xml文件。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />