Androidで外部ストレージへアクセス

SDカードなどの外部ストレージ(Nexus7などSDカードではない外部ストレージを持つ端末もある)にあるファイルにアクセスする場合、端末によってパスが異なる。

(sdcard/だったりmnt/sdcard/だったりを直に指定すると、別の端末で動かないという結果に)


どの端末でも正しく外部ストレージパスで処理する為に、

Environment.getExternalStorageDirectory()をつかってパス名を取得する。



パーミッション

外部ストレージへアクセスする為にはパーミッションを指定しなければならない

読み取りのみの場合:READ_EXTERNAL_STORAGE

読み書き両方の場合:WRITE_EXTERNAL_STORAGE


!注意

READ_EXTERNAL_STORAGEはAndroid4.1で導入されたが必須ではなかった

しかしAndroid4.4からは必須となったみたい


参考:https://possiblemobile.com/2013/11/whats-changed-in-android-4-4-kitkat/