私のアプリケーションには、既存の SQLite データベースが接続されています。開始時に電話にコピーされ、使用されます。このデータベースが既にコピーされているかどうかを確認する方法は知っていますが、電話のデータベースが APK に保存されているものと同じかどうかを確認したいと考えています。それらを比較する方法はありますか?私はそれをプログラム的に行いたいと思っています。
元のデータベースはassets
フォルダーに保存されます。
ルート化された電話をお持ちの場合は、その詳細を見ることができます。ただし、電話がルート化されていない場合は、それを見ることができません。
別のことは、アプリケーションを電話にコピーした場合、間違いなく機能します。
結論として、ルート化された電話を使用している場合は、表示して比較できます。可能であれば、そのサイズまたはインストールされている時間を比較してみてください。
APKにDataBaseを添付し、携帯電話に正常にコピーされた場合、それは古いデータベースがコピーされたことを意味します.したがって、比較する必要はないと思います.比較したい場合は、テーブル内のすべてのレコードを比較してください.
次に、データベースが既にコピーされていることを覚えておきたい場合は、共有設定で 1 つのフラグを使用します。コピーしたら true を保存します。次に、その値を確認します。
更新しました
すべてのテーブルを一覧表示するには
select name from sqlite_master where type = 'table'
両方のデータベースに同じテーブルがある場合、これらの対応するテーブルのレコードを比較します