[英]how to always store application to sdcard/external storage
我正在制作一個Android應用,我想將下載的圖像存儲到sdcard或外部存儲中。 我面臨的問題是,在某些手機上,圖像存儲在sdcard上,而在某些手機上,圖像存儲在內部存儲器中,特別是在諸如Galaxy S4之類的三星設備中。 請參閱附件中的圖像以獲取S4中的文件路徑。
File wallpaperDirectory = new File(
Environment.getExternalStorageDirectory()
+ "/TestApp/");
wallpaperDirectory.mkdirs();
FileOutputStream out = new FileOutputStream(Environment
.getExternalStorageDirectory().toString()
+ "/TestApp/" + secret + ".jpg");
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
Toast.makeText(
getApplicationContext(),
"Wallpaper saved sucessfully \n"
+ Environment.getExternalStorageDirectory()
.toString() + "/TestApp/" + secret
+ ".jpg", Toast.LENGTH_SHORT).show();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
我正在制作一個Android應用,我想將下載的圖像存儲到sdcard或外部存儲中。
Android SDK提供對外部存儲的訪問。 這是“ sdcard”還是其他取決於設備制造商。
我面臨的問題是,在某些手機上,圖像存儲在sdcard上,而在某些手機上,圖像存儲在內部存儲器中,特別是在諸如Galaxy S4之類的三星設備中。
該代碼將圖像存儲在外部存儲器中。 它不會將它們存儲在內部存儲中。 外部存儲設備是否可移動取決於設備制造商。
您不妨考慮閱讀有關外部存儲的文檔 。
您還應該:
不要使用字符串串聯來創建File
對象。 使用適當的File
構造函數。
將數據存儲在比外部存儲根目錄下的硬編碼TestApp
目錄更好的位置,例如getExternalFilesDir()
或getExternalCacheDir()
。 多年來,您的方法一直被認為是較差的形式,因為它會使用戶的外部存儲混亂。
使用更專注的方法來更新MediaStore
,例如使用MediaScannerConnection
和scanFile()
,而不是發出操作系統廣播,就好像您是操作系統一樣。
確保在后台線程上完成所有這些工作(從代碼片段中不清楚您是否在)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.