2012-02-16 58 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