5

かなり具体的な質問があります。

まず、私がやろうとしていることを説明し、次に問題を説明しましょう。

基本的に私がやろうとしているのは、既存の .db データベース ファイルをassetsフォルダーに保存し、インストール後に .db ファイルをアセットから Android のデフォルトのデータベースの場所にコピーすることです。このページの回答に似たもの [リンク] How to use an existing database with an Android application .

問題ルート化されていないデバイスの場合、アクセスできません/data/data/<<package name folder>>。この場合、データベース ファイルはどこに保存されますか。DB_PATH = "/data/data/" + context.getPackageName() + "/databases/"言い換えれば、ルート化されたデバイスの場合に、ファイルをアセットからデータベースのアプリケーションのデフォルトの場所にコピーしたいと考えています。ルート化されていないデバイスでも同じでしょうか。

4

3 に答える 3

9

ええ、どちらの場合も同じパスになります。/data/data/<application_package_name>/databases

現在、ルート化されていないデバイス/data/では、デバイスの内部ストレージのディレクトリにアクセスできません。そのため、データベース ファイルが表示されません。

ファイルを取得する場合は、データベース ファイルを内部ストレージ /data/data/<application_package_name>/databasesから外部ストレージ (sdcard) にコピーしてから、 ddmsを使用するかadb pull、データベース ファイルを取得します。

adb pull /data/data/<application_package_name>/databases/<database_file_name>また、システムからコマンドを実行して、データベース ファイルを取得してください。

ただし、デフォルトでは、すべての Android アプリケーション ストア データベースが内部ストレージ パスに保存されます/data/data/<application_package_name>/databasesまた、ルート化またはルート化されていないすべてのデバイスに適用できます。

于 2013-03-10T19:25:37.403 に答える