Как подключиться к защищенной паролем SQLite DB с помощью OrmLite?

Я копирую DB из активов по этому коду:

public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static final String DATABASE_NAME = "database.db"; private static final String DATABASE_PATH = "/data/data/"+BuildConfig.APPLICATION_ID+"/databases/"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); copyFromAssets(context); } private void copyFromAssets(Context context) { boolean dbexist = checkdatabase(); if (!dbexist) { File dir = new File(DATABASE_PATH); dir.mkdirs(); InputStream myinput = context.getAssets().open(DATABASE_NAME); String outfilename = DATABASE_PATH + DATABASE_NAME; Log.i(DatabaseHelper.class.getName(), "DB Path : " + outfilename); OutputStream myoutput = new FileOutputStream(outfilename); byte[] buffer = new byte[1024]; int length; while ((length = myinput.read(buffer)) > 0) { myoutput.write(buffer, 0, length); } myoutput.flush(); myoutput.close(); myinput.close(); } } } 

Чтобы получить Дао, я использую это:

 public Dao<AnyItem, Integer> getDaoAnyItem() throws SQLException { if (daoAnyItem == null) { daoAnyItem = getDao(AnyItem.class); } return daoAnyItem; } 

Но как получить Дао, если моя БД будет защищена паролем?

Solutions Collecting From Web of "Как подключиться к защищенной паролем SQLite DB с помощью OrmLite?"

Вы должны использовать SQLCipher с OrmLite, я бы предложил вам библиотеку ormlite-sqlcipher

OrmLiteSqliteOpenHelper имеет конструктор, который берет пароль, чтобы изменить ваш вызов

 super(context, DATABASE_NAME, null, DATABASE_VERSION, (File)null, "DB password goes here"); 

Я бы взял вызов copyFromAssets (контекст) из конструктора DatabaseHelper и вызвал его до создания DatabaseHelper, т. Е. Когда приложение запускается