私はsqliteデータベースを使用するアプリをやっています 私のアプリには「データベースの更新」ボタンを持つ機能があります。
ユーザーが [データベースの更新] ボタンをクリックすると、URL から古い db ファイルを新しい db ファイルでアップグレードする必要があります。
これを行う方法。調査によると、データベースは .apk ファイルに配置されるため、変更することはできません。これに対する解決策はありますか。私を助けてください。ありがとうございました。
私はsqliteデータベースを使用するアプリをやっています 私のアプリには「データベースの更新」ボタンを持つ機能があります。
ユーザーが [データベースの更新] ボタンをクリックすると、URL から古い db ファイルを新しい db ファイルでアップグレードする必要があります。
これを行う方法。調査によると、データベースは .apk ファイルに配置されるため、変更することはできません。これに対する解決策はありますか。私を助けてください。ありがとうございました。
private void importDatabase(String inputFileName) throws IOException
{
InputStream mInput = new FileInputStream(inputFileName);
String outFileName = YOUR_DB_PATH_HERE;
OutputStream mOutput = new FileOutputStream(outFileName);
byte[] mBuffer = new byte[1024];
int mLength;
while ((mLength = mInput.read(mBuffer))>0)
{
mOutput.write(mBuffer, 0, mLength);
}
mOutput.flush();
mOutput.close();
mInput.close();
}
編集:
あなたはそれが役に立つかもしれません:
Download Manager を使用して URL から db ファイルをダウンロードし、そのファイルをこのパスにコピーするだけです。
/data/data/<YOUR PACKAGE NAME>/databases/
自動的に更新されます。これを使用して動作しています
アプリケーションの初回起動時に、データベースを apk ファイルから外部/内部ストレージにコピーする必要があります。更新する必要がある場合(ステートメントを使用するか、データベース全体を置き換えることにより)、内部/外部メモリで問題なく操作できます。アプリケーションを更新するとき (そして、新しいアプリケーションに新しいデータベースが含まれている可能性があります)、新しいアプリケーションの最初の起動時に、内部/外部メモリに保存したデータベースを置き換える必要があります。