1

私のAndroidアプリでは、いくつかのファイルをSDカードに書き込みます。ただし、SD カードが読み取り専用の場合は、それに応じて画面設定を変更する必要があるという条件があります。SDカードが読み取り専用の場合、コードで確認するにはどうすればよいですか?

4

2 に答える 2

2

そして、より完全な答え...

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // We can read and write the media
    mExternalStorageAvailable = mExternalStorageWriteable = true;

}
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    // We can only read the media
    mExternalStorageAvailable = true;
    mExternalStorageWriteable = false;
//    check_folder();
} else {
    // Something else is wrong. It may be one of many other states, but all we need
    //  to know is we can neither read nor write
    mExternalStorageAvailable = mExternalStorageWriteable = false;

}
于 2012-11-23T07:24:38.053 に答える
2

Environment.MEDIA_MOUNTED_READ_ONLYを次のように使用してみてください。

String status = Environment.getExternalStorageState();
if (status.equalsIgnoreCase(Environment.MEDIA_MOUNTED)) {
    Toast.makeText(Activity.this, "SD MEDIA_MOUNTED", Toast.LENGTH_LONG).show();

} else if (status.equalsIgnoreCase(Environment.MEDIA_MOUNTED_READ_ONLY)) {
    Toast.makeText(Activity.this, "MEDIA_MOUNTED_READ_ONLY", 
          Toast.LENGTH_LONG).show();
}
于 2012-11-23T05:46:12.677 に答える