@@ -865,6 +865,10 @@ public Cursor newCursor(SQLiteDatabase db,
865865 * @throws SQLiteException if the database cannot be opened
866866 */
867867 public static SQLiteDatabase openDatabase (String path , String password , CursorFactory factory , int flags , SQLiteDatabaseHook databaseHook ) {
868+ return openDatabase (path , password .toCharArray (), factory , flags , databaseHook );
869+ }
870+
871+ public static SQLiteDatabase openDatabase (String path , char [] password , CursorFactory factory , int flags , SQLiteDatabaseHook databaseHook ) {
868872 SQLiteDatabase sqliteDatabase = null ;
869873 try {
870874 // Open the database.
@@ -899,6 +903,10 @@ public static SQLiteDatabase openOrCreateDatabase(String path, String password,
899903 return openDatabase (path , password , factory , CREATE_IF_NECESSARY , databaseHook );
900904 }
901905
906+ public static SQLiteDatabase openOrCreateDatabase (String path , char [] password , CursorFactory factory , SQLiteDatabaseHook databaseHook ) {
907+ return openDatabase (path , password , factory , CREATE_IF_NECESSARY , databaseHook );
908+ }
909+
902910 /**
903911 * Equivalent to openDatabase(file.getPath(), factory, CREATE_IF_NECESSARY).
904912 */
@@ -911,11 +919,19 @@ public static SQLiteDatabase openOrCreateDatabase(File file, String password, Cu
911919 */
912920
913921 public static SQLiteDatabase openOrCreateDatabase (String path , String password , CursorFactory factory ) {
914- return openDatabase (path , password , factory , CREATE_IF_NECESSARY , null );
922+ return openDatabase (path , password .toCharArray (), factory , CREATE_IF_NECESSARY , null );
923+ }
924+
925+ public static SQLiteDatabase openOrCreateDatabase (String path , char [] password , CursorFactory factory ) {
926+ return openDatabase (path , password , factory , CREATE_IF_NECESSARY , null );
915927 }
916928
917929 public static SQLiteDatabase openDatabase (String path , String password , CursorFactory factory , int flags ) {
918- return openDatabase (path , password , factory , CREATE_IF_NECESSARY , null );
930+ return openDatabase (path , password .toCharArray (), factory , CREATE_IF_NECESSARY , null );
931+ }
932+
933+ public static SQLiteDatabase openDatabase (String path , char [] password , CursorFactory factory , int flags ) {
934+ return openDatabase (path , password , factory , CREATE_IF_NECESSARY , null );
919935 }
920936
921937 /**
@@ -931,9 +947,14 @@ public static SQLiteDatabase openDatabase(String path, String password, CursorFa
931947 */
932948 public static SQLiteDatabase create (CursorFactory factory , String password ) {
933949 // This is a magic string with special meaning for SQLite.
950+ return openDatabase (":memory:" , password .toCharArray (), factory , CREATE_IF_NECESSARY );
951+ }
952+
953+ public static SQLiteDatabase create (CursorFactory factory , char [] password ) {
934954 return openDatabase (":memory:" , password , factory , CREATE_IF_NECESSARY );
935955 }
936956
957+
937958 /**
938959 * Close the database.
939960 */
@@ -1895,7 +1916,7 @@ protected void finalize() {
18951916 }
18961917 }
18971918
1898- public SQLiteDatabase (String path , String password , CursorFactory factory , int flags ) {
1919+ public SQLiteDatabase (String path , char [] password , CursorFactory factory , int flags ) {
18991920 this (path , password , factory , flags , null );
19001921 }
19011922
@@ -1907,7 +1928,7 @@ public SQLiteDatabase(String path, String password, CursorFactory factory, int f
19071928 * @param flags 0 or {@link #NO_LOCALIZED_COLLATORS}. If the database file already
19081929 * exists, mFlags will be updated appropriately.
19091930 */
1910- public SQLiteDatabase (String path , String password , CursorFactory factory , int flags , SQLiteDatabaseHook databaseHook ) {
1931+ public SQLiteDatabase (String path , char [] password , CursorFactory factory , int flags , SQLiteDatabaseHook databaseHook ) {
19111932
19121933 if (path == null ) {
19131934 throw new IllegalArgumentException ("path should not be null" );
@@ -1924,7 +1945,7 @@ public SQLiteDatabase(String path, String password, CursorFactory factory, int f
19241945 databaseHook .preKey (this );
19251946 }
19261947
1927- native_key (password . toCharArray () );
1948+ native_key (password );
19281949
19291950 if (databaseHook != null ){
19301951 databaseHook .postKey (this );
0 commit comments