SDカードが接続されているかどうか知る方法 書き込み可能かどうか 読み込み可能かどうか
SDカードの接続状態は
Environment.getExternalStorageState()
で知ることができます。
[参考記事] SDカードの空き容量を調べる方法
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
  // SDカードが接続されている
}
SDカードが読み込み可能かどうかを調べる方法
public boolean isSdCanRead() {
  //SDカードがあるかチェック
  String status = Environment.getExternalStorageState();
  if (!status.equals(Environment.MEDIA_MOUNTED)) {
    return false;
  }
  File file = Environment.getExternalStorageDirectory();
  if (file.canRead()){
    return true;
  }
  return false;
}
SDカードが書き込み可能かどうかを調べる方法
ただし容量などは考慮していません。
書き込みできない場合には次のようなエラーが出ます。
Permission denied
AndroidManifest.xml に次のパーミッション設定がされていない場合や、SDカード自体が書き込みロックがされている場合を検知できます。
AndroidManifest.xml の permission一覧
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
public boolean isSdCanWrite() {
  //SDカードがあるかチェック
  String status = Environment.getExternalStorageState();
  if (!status.equals(Environment.MEDIA_MOUNTED)) {
    return false;
  }
  File file = Environment.getExternalStorageDirectory();
  if (file.canWrite()){
    return true;
  }
  return false;
}
関連記事
- ListViewにArrayAdapterを渡すサンプルコード(一覧項目から選択する場合のUI)
 - assetsフォルダのファイルを扱う方法 AssetManager
 - SDカードの空き容量を調べる方法
 - SDカードからサムネイル画像を取り出す getThumbnailメソッド
 - 文字列の置き換えを行う方法 (replaceAllで気をつけること)
 - 文字列の部分一致検索を行う方法
 - 処理中を表すプログレスダイアログを表示する
 - Java メモリー使用量を取得する方法
 - SDカードに保存したファイルをギャラリーなどに反映させる方法
 - 実行中のメソッド名やクラス名を取得する方法
 - Singletonパターンを使ってクラスのインスタンスを1つにする(共有クラスのリソースを削減する方法)
 - AndroidアプリでTextViewに使用できるフォントの一覧
 - TextViewに独自フォントを使用する方法
 - assetsフォルダには1MB以上の非圧縮ファイルを設置できない
 - EditTextのソフトキーボードの『完了』を虫メガネアイコンなどに変更する方法
 - Viewの表示・非表示を切り替える方法
 - ファイルのテキストデータを読み込む
 - テキストデータをファイルに書き込む BufferedWriterの使用例
 - Webからダウンロードして保存する DefaultHttpClientの使用例
 - ファイルをコピーする InputStream,OutputStreamの使用例
 - 画像を拡大縮小する方法
 - LinearLayout をスクロールさせる方法(ScrollViewの使用方法)
 - アプリ起動時にスプラッシュ画面を表示させる方法
 - WebViewの設定一覧
 - WebViewを使ってWebサイトを表示する方法 WebKitからアプリ、アプリからWebKitへの連携処理
 - 暗号化・複合化を行う ブロック暗号
 - base64変換の一覧とその詳細サンプルコード
 - 型変換の一覧(キャスト)
 - 動画を再生する方法 MediaPlayer
 - 動画を再生する方法 VideoView
 - Androidでマルチスレッド処理をする方法
 - 処理を一定時間停止させる方法
 - SDやdata、downloadなど各種ディレクトリパスの取得方法
 - ファイルの拡張子を取得する
 - 実機内やエミュレータ内のファイルを操作する DDMS、adbとサンプルコード
 
スポンサーリンク





