2010-12-07 10 views
0

SQLiteDatabase.createDatabaseを使用すると、データベースを外部ストレージに作成できますが、SQLiteOpenHelperを使用してデータベースをsdcardに作成できないことがわかりました。 なぜですか?SQLiteOpenHelperがsdcardにデータベースを作成できません

+0

に私の答えで説明したように、私は漠然と私はSDカードのためSQLiteOpenHelperを使用することができなかったこと(それが半年前だった)リコール異なるファイル・パスを提供し、独自のコンテキストの実装を提供することができます私はちょうどデフォルトのDBの場所(内部メモリ)に切り替えました。 SDカード使用の唯一の理由は、DBサイズでした。私の「レコード」には画像があるので、画像はSDカード上にあるのに対し、DBには画像パスのみを保存することに決めました。これにより、DBサイズをコンパクトに保つ​​ことができました(内部メモリは限られています)。 –

+0

sdcardへの書き込みアクセス権が必要です。それがあれば、データベースヘルパーに完全修飾パス名を指定してください。 –

+0

そうでないかもしれません。私はちょうど私の古いコードをチェックし、私はsdcardにダウンロードしたデータベースを処理しています。私はそれらのデータベースアダプタでデータベースヘルパーを使用しません。私はSQLiteDatabase.openDatabase(databaseFile、null、SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS)を使用します。 –

答えて

2
> SQLiteOpenHelper can not create database to sdcard. Why? 

...データベースの絶対ファイルパスをコンテキストオブジェクトから取得するためです。

DatabaseHelper(finalコンテキストコンテキスト, String databaseName)

デフォルト・コンテキストの実装では、ユーザーがパスをサポートしていません。

stackoverflow sqliteopenhelper-problem-with-fully-qualified-db-path-name

関連する問題