- 私は必要な許可を与えました:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- としてパスをハードコーディングしました
"/sdcard/filename"
。
Nexusには外部SDサポートがないと思いますが、S2にはサポートがあるため、パスの取得に問題が発生する可能性があります。このようなケースをどのように適切に処理すればよいでしょうか?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
"/sdcard/filename"
。Nexusには外部SDサポートがないと思いますが、S2にはサポートがあるため、パスの取得に問題が発生する可能性があります。このようなケースをどのように適切に処理すればよいでしょうか?
各 Android デバイスで、次のように外部ストレージへのパスを取得できます
Environment.getExternalStorageDirectory()
私は Nexus デバイスを持っていますが、動作します - 私の古いマイルストーンでも動作します
以下は、独自の 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)
メソッドを使用して、アプリケーション内のどこでもカードが使用可能かどうかを確認できます。