2012-03-13 2 views
3

私は自分のPC上でsqlcipherで作成された暗号化されたデータベースを読み込もうとしていますが、私のアプリでそれを読むことはできません。たとえば、次のように以前にAndroidでsqlcipherを使用して作成した暗号化されたデータベースを読み取る方法は?

Cursor c = database.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null); 
    c.moveToFirst(); 
    do { 
     String s = c.getString(0); 
     if (s.equals("android_metadata")) { 
      // System.out.println("Get Metadata"); 
      continue; 
     } else { 
      dirArray.add(s); 
     } 
    } while (c.moveToNext()); 
    Log.i("getS", "DATABASE = " + dirArray.toString()); 
    Log.i("getS", "length = " + dirArray.size()); 

も次

03-12 03:28:12.691: I/getS(9895): DATABASE = [] 
03-12 03:28:12.691: I/getS(9895): length = 0 

この上の結果:

Cursor c2 = database.query("my_table", new String[] { "name" }, null, null, null, null, "name"); 

これまでで復帰:

03-12 03:28:12.701: I/Database(9895): sqlite returned: error code = 1, msg = no such table: my_table 

私はsdk-でコンパイルしています7、暗号化されていない同じデータベースを試してみたらtはsqlcipher、私は何の問題もありません。 誰でも私のコンピュータで暗号化されたデータベースをアンドロイドでどのように読むのですか教えてください。 ありがとう;)

+0

私は同様の問題に遭遇し、その溶液受信: を http://stackoverflow.com/questions/9742686/sqlcipher-sharing-a-windows-created-database-with-an-android-application –

+0

@ djx-問題を解決できましたか?私は本当に助けに感謝します!ありがとう – nia

答えて

1

AndroidデバイスのSQLCipherデータベースにアクセスして変更できるようにするAndroidライブラリ用のSQLCipherを使用します。現在、Android 2.1〜4.0.3をサポートしています。バイナリダウンロードはここで見つけることができます:

https://github.com/sqlcipher/android-database-sqlcipher/downloads

アンドロイド用SQLCipherをitegrating上のチュートリアルでは、ここで見つけることができます:

​​

+0

私はすでにチュートリアルのようなライブラリを追加していますが、まだ動作しません。 – aanm

+1

また、このチュートリアルでは、PC – aanm

+1

@ djxから作成したデータベースを読む方法を教えていません。問題を解決できましたか?私は本当に助けに感謝します!ありがとう – nia

関連する問題