2012-02-16 28 views
0

我目前正在爲Android OS編寫電話簿類型的應用程序。我目前使用SQLiteDatabase來保存我的聯繫信息。我知道數據庫在Android Phone上的可訪問SQLiteDatabase

data/data/package-name/databases 

舉行但是,我需要root權限能夠找到在Android手機上該目錄。有沒有辦法將數據庫放在某個地方,我可以找到它,而不必根源於手機?

+0

如果要查看數據庫內容,請使用SQLite瀏覽器。相關文章[鏈接](http://anujarosha.wordpress.com/2011/12/12/how-to-insert-data-in-to-a-sqlite-database-in-android/) – AnujAroshA 2012-02-16 03:17:34

+0

沒有root訪問權限,我可以說的是你必須實際複製數據庫文件,並在SD卡上將其放到可訪問的位置。 – Arslan 2012-02-16 03:52:11

+0

據我所知,即使它是你的包和數據庫,你也將無法瀏覽數據,而不需要根植電話。 – Vinay 2012-02-16 03:53:39

回答

1

只需以編程方式將您的數據庫複製到SD卡即可。 此代碼是一個例子如何訪問DB =)

   try { 
        input = new FileInputStream("/data/data/my_package_name/databases/" + DATABASE_NAME); 

        File dir = new File("/sdcard/database_dump"); 
        dir.mkdir(); 

        OutputStream output = new FileOutputStream("/sdcard/debugdump/myDb.db"); 

        byte[] buffer = new byte[1024]; 
        int length; 
        while ((length = input.read(buffer))>0) { 
         output.write(buffer, 0, length); 
        } 

        output.flush(); 
        output.close(); 
        input.close(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

後您的數據庫複製到你可以把它和使用任何你喜歡的SQLite的編輯器在PC上使用它的SD卡。例如:http://www.softpedia.com/get/Internet/Servers/Database-Utils/SqlPro.shtml

+0

謝謝!我結束了調用dir.createNewFile()而不是使用dir.mkdir(); – 2012-02-24 21:45:35