0
  1. 私は必要な許可を与えました: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  2. としてパスをハードコーディングしました"/sdcard/filename"

Nexusには外部SDサポートがないと思いますが、S2にはサポートがあるため、パスの取得に問題が発生する可能性があります。このようなケースをどのように適切に処理すればよいでしょうか?

4

2 に答える 2

5

各 Android デバイスで、次のように外部ストレージへのパスを取得できます

Environment.getExternalStorageDirectory()

私は Nexus デバイスを持っていますが、動作します - 私の古いマイルストーンでも動作します

于 2012-06-20T11:49:35.587 に答える
0

以下は、独自の apps ディレクトリを作成するための使用例です。

SD カードがコンピュータにマウント/テザリングされているか、デバイスから取り外されている可能性があるため、最初に SD カードが使用可能かどうかを常に確認する必要があります。

private void SetDirectory() {
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {

            extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File dbDirectory = new File(extStorageDirectory + "/yourAppName/whatever/");
            myDirectory.mkdirs();// Have the object build the directory

        } else if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) {

            //TODO Make some kind of allert or Toast to warn/notify the user that the SDcard is needed.
        }

    }

このandroid.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)メソッドを使用して、アプリケーション内のどこでもカードが使用可能かどうかを確認できます。

于 2012-06-20T21:59:51.893 に答える