AndroidでSDカードに保存
2012.08.02 Thursday
Android端末では、ほとんどのものにSDカードが使用されています。
アプリで撮影した写真データはSDカードに保存したいものです。
そこで使用するのが「Environment.getExternalStorageDirectory()」なのですが、
このメソッドで取れる結果が確実でないことがあるようです。
通常はSDカードのパスが取得されますが
端末によっては、内臓メモリのパスが取れることがあるのです。
おそらく内臓メモリの一部をSDカードのようにマウントしているからみたいです。
スマホではSDカードのパスが取れたのですが、
タブレット端末の「ARROWS Tab F-01D」ではSDカードのパスがとれませんでした。
必ず所定の場所に写真が保存されるので機能としては問題ないのですが
内臓メモリが少ない場合はすぐに容量不足になることもあるかもしれないです。
調べたところ以下の方法で外部メモリへのパスがとれるようですが
それぞれ結果が違うようです。
Environment.getExternalStorageDirectory().toString()
System.getenv("EXTERNAL_STORAGE")
System.getenv("SECOND_VOLUME_STORAGE")
System.getenv("THIRD_VOLUME_STORAGE")
確実にSDカードへのパスをとる方法はないのでしょうか?
アプリで撮影した写真データはSDカードに保存したいものです。
そこで使用するのが「Environment.getExternalStorageDirectory()」なのですが、
このメソッドで取れる結果が確実でないことがあるようです。
通常はSDカードのパスが取得されますが
端末によっては、内臓メモリのパスが取れることがあるのです。
おそらく内臓メモリの一部をSDカードのようにマウントしているからみたいです。
スマホではSDカードのパスが取れたのですが、
タブレット端末の「ARROWS Tab F-01D」ではSDカードのパスがとれませんでした。
必ず所定の場所に写真が保存されるので機能としては問題ないのですが
内臓メモリが少ない場合はすぐに容量不足になることもあるかもしれないです。
調べたところ以下の方法で外部メモリへのパスがとれるようですが
それぞれ結果が違うようです。
Environment.getExternalStorageDirectory().toString()
System.getenv("EXTERNAL_STORAGE")
System.getenv("SECOND_VOLUME_STORAGE")
System.getenv("THIRD_VOLUME_STORAGE")
確実にSDカードへのパスをとる方法はないのでしょうか?