fc2ブログ

戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
06

外部SDカードについてまとめるまえのメモ

Android のSDカードのディレクトリパス取得について『SDカードのパス取得:Environment と System.getenv』で書いたが、対応しきれていないためいったん書き直し。
――の前のメモ。

Android APIで用意されているSDカードのパス取得
Environment.getExternalStorageDirectory()

デバイスによってはSDカードは内蔵ストレージ(取り外し不可)、外部ストレージ(取り外し可能)に分かれている。
その場合、上記は内蔵ストレージを取得する。

外部ストレージを取得するには System.getenv(String name) を使用して環境変数に設定されているパスを取得する。

【環境変数】 ※デバイス毎に環境変数名が違う
EXTERNAL_STORAGE
EXTERNAL_STORAGE2
EXTERNAL_SD_STORAGE
EXTERNAL_USB_STORAGE
EXTERNAL_ALT_STORAGE
INTERNAL_STORAGE
EXTERNAL_STORAGE_ALL
SECOND_VOLUME_STORAGE
THIRD_VOLUME_STORAGE
SECONDARY_STORAGE
EXTERNAL_REMOVABLE_SDCARD

一番上の EXTERNAL_STORAGE は Environment.getExternalStorageDirectory() から呼び出されている。
ただし、初期の GALAXY S だと違うパスが変えるらしい

未確認だが Environment.isExternalStorageRemovable() で取り外し可能か確認できるようだ。
(Androud 2.3 API 9 以降)

【注意】
・サムスンの GALAXY シリーズで GALAXY SⅢから環境変数名が変わった
・HTC 製品のように環境変数が用意されていないものがある
・環境変数名は一緒だが Xperia acro HD は au と docomo でパスが違う
・GALAXY SⅢ等、環境変数には : (コロン)区切りで複数のパスが指定されているものもある
・環境変数は上記以外にもある可能性大。今後も増えるかもしれない。

【参考サイト(ページ)】
・我が征くは肥沃な荒野 - ストレージの扱いが混沌の極みの件
http://zautale.sakura.ne.jp/android/ExternalStorageChecker/index.cgi

・コードを貼り付けながら。 - SDカードのディレクトリ・パス
http://d.hatena.ne.jp/unagi_brandnew/20120613/1339598357

・au - そのほか 仕様(スペック)
この記事の参考にはしていないが、公式でSDカードのパスが公開されていたのでついでに。
残念ながら環境変数は非公開されていない。
http://www.au.kddi.com/developer/android/kishu/other/index.html
スポンサーサイト




Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始