私の Android アプリでは、暗号化されたデータベースまたは暗号化されていないデータベースを作成するオプションをユーザーに提供する必要があります。データベースはデバイスの SD カードに保存されます。
私が使用している暗号化されていないデータベースの場合:-
db = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, "", null);
しかし、コマンドラインからデータベースを開くと、エラーが発生します:ファイルは暗号化されているか、データベースではありません。したがって、上記のコード行は常に暗号化されたデータベースを作成します。
私のコードは以下の通りです:
if(db == null){
try{
SQLiteDatabase.loadLibs(context);
String encryptStr = "";
if(new File(DB_PATH + DB_NAME).exists()){
db = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, encryptStr, null);
}else{
db = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, encryptStr, null);
executeSchema(context);
}
db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
}catch(Exception e){
db = null;
AlertHelper.logError(e);
}
}
Androidでsqlcipherを使用して暗号化されていないデータベースを作成する方法はありますか?.