アンドロイドアプリケーションデータを内部メモリではなくSDカードに保存する方法はありますか? 私はアプリケーションのsqliteデータベースを内部メモリからSDCardに転送する方法を知っていますが、最初に内部メモリがいっぱいになったらどうしますか?誰もこれをどのように扱うのですか?SDカードにアンドロイドアプリケーションデータを保存
答えて
警告:この回答は時代遅れです。以下の回答に記載されているように、Environment.getExternalStorageDirectory()を使用してSDカードのルートパスを取得する必要があります。このメイク感覚のコメントそう
旧回答:
は、SDカードを使用するようにAndroidアプリケーションを指示する必要があり、あなたのパスが(少なくともそれがG1でそのように動作します)ルートに/sdcard/
を追加します。 Androidのファイルシステムオブジェクトは、ファイルサイズをチェックする機能を提供します。そのため、フェイルオーバーコードを書くことは難しいかもしれません。このコードは、内部メモリがいっぱいになるとルートパスを調整します。
SDカードを使用する際の問題点は、アプリケーションが必要とするときにSDCardが常に存在するとは確信できないということです。内部メモリの場合はそうではありません。あなたのアプリケーションがこのデータに依存しない限り、それはうまくいくはずです。
Environment.getExternalStorageDirectory()を使用すると、「/ sdcard」をハードコードするよりも良いことがあります フォルダ名が必ずしもその名前であるとは限りません。また、Environmentクラスは、外部ストレージが使用可能であるかどうかをチェックするgetExternalStorageState()メソッドを提供します。
Samsungの*実際の* SDカードの場所が 'Environment.getExternalStorageDirectory()+"/external_sd "であるため、これは必ずしも機能しません。他のデバイスは異なる場所に配置されます。 – Muz
ここにもうちょっとしたトリックがあります。 Applicationには、パスを取得するために呼び出されるいくつかのメソッドがあります。 特に、このアプリケーションは、SQLiteOpenHelperがパスを構築するために使用する方法getDatabasePathを持っています。 カスタムアプリケーションクラスでは、これらのメソッドをオーバーライドして、getExternalStorageDirectoryのパスを含む異なるパスを提供できます。
外部ストレージは、アプリケーション固有またはパブリックです。 getExternalStorageDirectoryメカニズムの代わりに、 getExternalFilesDir()とgetExternalStoragePublicDirectory()の方法があります。
SDカードのルートポイントとして/ mnt/sdcardを使用しているデバイスもあります。開始するに
:
モデル/ OSによっては、あなたがSDカードのルートディレクトリにアクセスすることができます。
File externalStorage = Environment.getExternalStorageDirectory();
これは、内蔵SDストレージまたは内蔵SDメモリを参照します。
externalStorage.getAbsolutePath()
はこと、外部SDメモリまたはマイクロSDにアクセスするには、次のいずれかの値
"/ SDカード/" または "を/ mnt/SDカード/"
が返されあなたは通常、携帯電話/タブレットの外から接続します。アンドロイドが外部メモリを指すように作成する次のフォルダのいずれかを使用する必要があります。
"/mnt/sdcard/sd"
"/mnt/sdcard/external_sd"
"/sdcard/external_sd"
"/sdcard/sd"
"/mnt/sdcard/"
の
PSは:あなたは空のフォルダexternal_sd
またはsd
メモリ
内部SDカード上に気づくことができ、このフォルダは空であり、その外部のマイクロSDカードを指すために使用します。
最後に、アンドロイドマニフェストXMLのandroid.permission.WRITE_EXTERNAL_STORAGE
のSDカードへの読み取り/書き込みアクセス権があることを確認してください。
最後にあなたはどのようにルートパスを調整していますか?
残念ながら、これは絶対に標準ではありません。 LG Optimusでは/ mnt/sdcard/_ExternalSDにあります。私は誰かがGoogleですべてを検討するつもりです願っています。メディアのネーミングは非常に悪い(外部???)、内蔵のものが1つあるときは、2番目のsdcardにアクセスする方法についてドキュメントには言わない。 – Snicolas
SDカードに存在するすべてのフォルダ名を取得するのに手伝ってください。 –
- 1. ByteArrayOutputStreamをSDカードに保存
- 2. SDカードにファイルを保存する
- 3. メディアファイルをBlackberry SDカードに保存
- 4. Androidスタジオ:SDカードに画像を保存
- 5. AndroidカメラのSDカードへの保存
- 6. ピカソロード後にSDカードに画像を保存
- 7. ビデオファイルをAndroid SDカードに自動的に保存
- 8. android:キャンバスをビットマップに変換してからSDカードに保存
- 9. SDカードに保存されたビデオをGridViewに表示する
- 10. SDカードに保存された画像を保存するAndroidスタジオ
- 11. AndroidのSDカード動画に安全に保存するには?
- 12. SDカードにカメラ画像を保存する
- 13. キャプチャした画像をSDカードに保存
- 14. SDカードにファイルを保存するとエラーが発生する
- 15. スレッドからSDカードにbmpイメージを保存する
- 16. Android画面のスクリーンショットを取ってSDカードに保存
- 17. アンドロイドプロジェクトフォルダからSDカードまたは内蔵メモリにファイルを保存
- 18. モノドローイングの設定イメージビューをSDカードに保存
- 19. アンドロイドカメラアンドロイドのsdカードに画像を保存する
- 20. ダウンロードしてSDカードにPDFを保存できません
- 21. Android - AsyncTaskでSDカードに画像を保存できない
- 22. AndroidのSDカードにファイルを保存する
- 23. イメージ、オーディオ、ビデオをsdカードに保存する
- 24. アンドロイドのsdカードにスクリーンショットを保存できません
- 25. sdカードの代わりに内部メモリに保存
- 26. AndroidからダウンロードZipからApiとSDカードに保存
- 27. 私はSDカードの共有設定を保存できます
- 28. AndroidのSDカードへの保存/書き換え
- 29. Android - FTP SDカードに画像を保存せずにImageViewに画像を表示
- 30. Raspberry-piのSDカードを別のSDカードにコピーする
...ファイル名と
と行くために、あなたの準備ができて、あなたの準備を指定する必要がありますか。 – user121196
使用しているルートパスを調整します。 (それはちょっと混乱していました...あなたはAndroidのルートパスを変更できません) – haseman
私はデータベースを作成するためにSQLiteDatabaseを使用していますが、そのコンストラクタのname引数にはパスを含めることはできませんsdcardのデータベース? – user121196