我的應用程序是聯繫人列表,我想存儲在SD卡 我的聯繫人數據,但我怎麼可以存儲在SD卡中的數據,或者如果我將使用數據庫的話,我要如何存儲它或使用簡單的文件比我要如何保存它如何在SD卡寫入數據
thanx提前
我的應用程序是聯繫人列表,我想存儲在SD卡 我的聯繫人數據,但我怎麼可以存儲在SD卡中的數據,或者如果我將使用數據庫的話,我要如何存儲它或使用簡單的文件比我要如何保存它如何在SD卡寫入數據
thanx提前
如果你真的想要一個簡單的文件存儲到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。
可以使用Environment.getExternalStorageDirectory()
獲取路徑,然後使用這個路徑打開一個文件。
您可能需要具備以下權限集:使用下面的代碼
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
存儲聯繫人數據到設備的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();
}
}
}
}
,看看下面的鏈接瞭解更多信息。
並在下面給出權限到您的AndroidManifest.xml文件。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />