0

我有一个受密码保护的 SQLite 数据库。我知道密码,假设它是123456qwAS.

我想将此密码嵌入到我的应用程序中,以便我的应用程序可以自动打开数据库。在此数据库受密码保护之前,我使用以下代码打开数据库:

public void showWordlist()
{
    edWord.setEnabled(true);
    String word = edWord.getText().toString();
    Uri uri = Uri.parse("content://myapp_Provider/dict/" + mDBFile.fileName + "/list/" + word);
    edWord.requestFocus();      
    try
    {
        @SuppressWarnings("deprecation")
        Cursor result = managedQuery(uri,null,null,null,null);          
        if (result != null)
        {
            int countRow=result.getCount();
            Log.i(MAIN_TAG, "countRow = " + countRow);
            mLSTCurrentWord.clear();
            //mLSTCurrentContent.clear();
            mLSTCurrentWordId.clear();
            mAdapter.clear();
            if (countRow >= 1)
            {
                int indexWordColumn = result.getColumnIndex("word");
                int indexIdColumn = result.getColumnIndex("id");
                result.moveToFirst();
                String strWord;
                int intId;

                int i = 0;
                do
                {
                    strWord = Utility.decodeContent(result.getString(indexWordColumn));
                    intId = result.getInt(indexIdColumn);
                    mLSTCurrentWord.add(i,strWord);
                    mLSTCurrentWordId.add(i,intId);
                    mAdapter.add(strWord);
                    i++;
                } while (result.moveToNext()); 
            }       
            result.close();
        }
        lstWord.setAdapter(mAdapter);
    }
    catch (Exception ex)
    {
        Log.e(MAIN_TAG, "Error = " + ex.toString());  
    }
    edWord.setEnabled(true);        
}

所以我的问题是:如何以编程方式将上述密码添加到此代码中,以便我的应用程序可以自动打开(并加载)受密码保护的数据库?

4

1 回答 1

0

Android 不支持加密/密码保护的 SQLite 操作。作为替代方案,您可以集成声称提供此类保护的H2 数据库,但开销几乎为 1MB。

于 2013-06-24T07:22:56.070 回答