[英]Android create a new folder on internal “Device Storage”
因此,我正在創建一個將保存圖片的應用程序。 但我想將所有圖片捆綁到主“設備存儲”目錄中的易於獲取的文件夾中。
我想保存到外部卡,但是我正在測試的設備上沒有一個,其他設備也可能沒有(最終,我將允許應用程序用戶決定是內部設備還是外部設備記憶)。
現在,我試圖找到這樣的文件夾:
String directory = "/mnt/CPB";
File mainFolder = new File(directory);
if(mainFolder.exists() && mainFolder.isDirectory()){
Toast.makeText(getApplicationContext(), "CPB Is Made", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CPB does not exist", Toast.LENGTH_SHORT).show();
mainFolder.mkdir();
}
這顯然是行不通的。 那我從這里去哪里呢?
在查看文件夾或連接到計算機以查看目錄時,我希望該文件夾顯示在主目錄視圖中。 另外,我是否需要Android清單中的任何類型的權限?
但我想將所有圖片捆綁到主“設備存儲”目錄中的易於獲取的文件夾中。
從上下文來看,我假設您是指Android SDK所謂的外部存儲 。
請注意,盡管您可能認為用另一個頂級目錄來充實用戶的外部存儲是一個好主意,但是如果用戶不同意您的評估,請不要感到震驚。
最終,我將允許應用程序用戶決定他們是否需要內部或外部存儲器
我試圖找到這樣的文件夾:
您沒有對/mnt
讀/寫權限,而用戶也無權訪問/mnt
。
您似乎想要的是Environment.getExternalStorageDirectory()
。 但是,你應該認真考慮要么Environment.getExternalStoragePublicDirectory()
適用於同一地點,如照片和東西)或getExternalFilesDir()
在Context
(用於外部存儲的應用程序特定的位置)。
我是否需要Android清單中的任何類型的權限?
外部存儲WRITE_EXTERNAL_STORAGE
上的所有位置在Android 4.3及WRITE_EXTERNAL_STORAGE
上都需要WRITE_EXTERNAL_STORAGE
。 另外,在Android WRITE_EXTERNAL_STORAGE
上, Environment
提供的外部存儲位置也需要WRITE_EXTERNAL_STORAGE
。
但是,如果使用getExternalFilesDir()
, WRITE_EXTERNAL_STORAGE
在Android 4.4+上不需要WRITE_EXTERNAL_STORAGE
。 這是考慮使用該位置的另一個原因。
另請注意, WRITE_EXTERNAL_STORAGE
在Android 6.0+中是dangerous
許可,這意味着如果targetSdkVersion
為23+,則必須在運行時要求它。 另外,無論targetSdkVersion
,用戶都可以決定不授予您該權限。 因此,避免WRITE_EXTERNAL_STORAGE
通常是一個好主意。
主設備存儲不是/mnt
,通常是/storage/sdcard0
(至少在我的/storage/sdcard0
4上)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.