2010-12-10 66 views
0

如何从设备文件系统将通用.db文件(不是我的资源的一部分,如contacts.db)复制到另一个位置,如sdcard? 我可以使用 -将通用.db文件复制到SD卡

InputStream ins = getResources()。openRawResource(“path to my .db file”);

然后按照上面的说明进行操作。

在此先感谢您的帮助

+0

您无法复制由Android系统或本地应用程序使用的数据库,而无需root权限。另外你还需要一个根资源管理器。 – 2010-12-10 19:12:16

+0

你为什么要这么做? – Falmarri 2010-12-10 19:12:18

回答

0

你不能在任何地方复制“通用”的数据库文件,你甚至不能访问它们。它们对于创建数据库并使用它们的应用程序是私有的。

有关更多信息,请参阅Security and Permissions文档。

当然,前提是你有机会获得任何db文件,对于那些自己的应用程序,你可以简单地复制为文件(虽然你要确保这样做之前关闭连接)。

应用程序,如联系人通过ContentProvider暴露自己的数据,但他们不允许你直接访问数据库文件(原因很明显)。

+0

谢谢查理我会明白,编辑contacts.db文件将不被允许,但我们甚至不能复制它,并发送到服务器或像普通文件(因为我们知道它的位置)SD卡。我们不能在manifest.xml中设置读取权限来达到这个目的吗?我正在尝试编写一个备份应用程序,并使用联系人API读取所有字段非常耗时。 – 2010-12-11 02:49:59