0

で外部SDカードにファイルを書き込もうとしているときに問題が発生しました。 &android 4.0.3などの書き込み権限を使用していても、別の方法で作業する方法を見つけましたが、今度は自分のアプリがリムーバブルSDカードへの書き込みは可能かどうか、そうでない場合は内蔵SDカードに切り替えたいと思います。WRITE_EXTERNAL_STORAGEWRITE_MEDIA_STORAGE

さて、問題は、リムーバブルSDカードへの書き込みがサポートされているかどうかをどうやって知ることができるかということです。したがって、誰かが同様の種類の実装を行った場合は、ここでコードを共有してください。

4

3 に答える 3

1

内部と外部の両方の SD カードに書き込むアプリがあります。私は WRITE_EXTERNAL_STORAGE 権限を持っていますが、他には何もありません。

外部SDカードを扱う際の主な問題は、getExternalStorageDirectory()通常は内部SDカードを返すため、パスを見つけることです. それが/mnt役立つ場合は、のサブディレクトリにする必要があります。

于 2012-09-07T12:54:06.573 に答える
1

API ガイドから直接回答します。

http://developer.android.com/guide/topics/data/data-storage.html#files外部

    boolean mExternalStorageAvailable = false;
    boolean mExternalStorageWriteable = false;
    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;
    } 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-09-07T12:33:46.973 に答える
0

SDカードに書き込めるかどうかは、Environmentクラスをご覧ください。

String externalStorageState = Environment.getExternalStorageState();

次に、を使用してこの状態を確認できます

Environment.MEDIA_MOUNTED(externalStorageState)および/またはEnvironment.MEDIA_MOUNTED_READ_ONLY(externalStorageState)

于 2012-09-07T12:37:07.647 に答える