2016-10-17 8 views
1

私はAndroidデバイスのExternalStorageDirectoryに何かを書き込もうとしています。これをテストするために、このディレクトリに単純なフォルダを作成しようとしました。それが働いていないので、私はthis stackoverflowスレッドを見つけた。私が最もupvotedサンプルコードExternalStorageにフォルダを作成します。

File folder = new File(Environment.getExternalStorageDirectory() + "/map"); 
boolean success = true; 
if (!folder.exists()) { 
success = folder.mkdir(); 
} 
if (success) { 
    // Do something on success 
} else { 
    // Do something else on failure 
} 

とgivven WRITE_EXTERNAL_STORAGE許可を設定を使用すると、フォルダの作成は常に失敗している - そこには例外ではありませんが、実行後f.exists()はまだfalseです。 私はNexus 5Xと最新のNexus 5X-Emulatorでこれをテストしました。

エミュレータでEnvironment.getExternalStorageState()virtual SD-cardをマウントしましたが、not-mountedを返します(これは私にとっても奇妙なようです)。私の物理的なデバイスではmountedを返すので、問題は見られません。なぜコードが動作してはならないのですか?

Environment.getExternalStorageState()のフォルダの作成および/または動作の失敗の解決のためのアドバイスは大歓迎です。

+1

のようなフォルダを作成することを確認しますhttps://stackoverflow.com/questions/32635704/android-permission-doesnt-work -ven-if-i-have-declared-it – CommonsWare

+0

ありがとう、この投稿は完全に解決しました。 – FlashTek

答えて

0

manifiestファイルに

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

をこの権限を追加し、この

String folder_main = "map"; 

File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
if (!f.exists()) { 
    f.mkdirs(); 
} 
関連する問題