私はいくつかの写真を撮るAndroidアプリケーションを書いていますが、それらすべてを私のアプリケーションに関連付けられた一意のディレクトリに保存したいと思います。
このディレクトリは、ユーザーが後で(アプリケーションが必ずしも実行されていない場合)撮影された写真を確認できるように、標準のギャラリーからアクセスできる必要があります。
私の問題は、Androidのバージョンが異なるすべての電話ベンダーがギャラリーのパスを持っていることです。例として:
Environment.getExternalStorageDirectory() + Environment.DIRECTORY_PICTURES +"/myFolder"
Samsung Galaxy Nexus
実行android 4.1.1
中およびAsus Transformer Pad
実行中は機能しますが、実行中は機能しandroid 4.0.3
ません。HTC Desire
android 2.3.5
これにより、以下に示すように、指定されたパス内に新しいディレクトリを保存しようとすると、アプリケーションがクラッシュします。
boolean success = false;
myFolder = new File( Environment.getExternalStorageDirectory() + Environment.DIRECTORY_PICTURES + "/myFolder" );
if( myFolder.exists() ){
//do nothing
}else{
success = dvaFolder.mkdir();
if( success ){
// Do something on success
/*
* folder has been created
*/
} else {
// Do something else on failure
/*
* folder creation failed
*/
throw new RuntimeException("File Error in writing new folder");
}
}
すべての異なるベンダーとAndroidバージョンのギャラリーでアクセスできるディレクトリを作成するにはどうすればよいですか?
ノート:
Logcatはあまり役に立ちません。実行時の例外を返すだけなので、