从另一个应用程序复制Android数据库?

时间:2010-02-12 17:38:44

标签: database android sqlite

我有两个版本的同一个应用程序。

当人们从免费版本升级到付费版本时,我希望将免费数据库复制到专业版数据库位置。

如果它属于另一个应用程序,是否可以访问数据库文件? 该文件甚至属于应用程序还是通常可以通过文件系统访问?

最后,如何在不对其进行硬编码的情况下获取数据库文件的路径?

2 个答案:

答案 0 :(得分:5)

  

有没有办法可以访问   数据库文件本身(如果它属于)   另一个申请?

仅当两个应用程序共享一个用户ID并且使用相同的签名密钥签名时。

  

该文件是否属于   申请还是一般的   可以通过文件系统访问吗?

它可以通过文件系统(/data/data/your.package.goes.here/databases/whatever-you-called-the.db)获得,但同样,只有当两个应用程序共享一个用户ID并且由相同的签名密钥签名时才能使用。

  

最后,我如何获得路径   数据库文件没有硬编码吗?

你必须对它进行硬编码,或者至少是编译时已经知道的变量组件(包名和数据库名)。

答案 1 :(得分:1)

数据库文件在哪里?如果它在SD卡上,那么您可以直接访问它。如果您已在私有应用程序目录中创建了数据库,那么您将无法触摸它。您可以在应用程序的免费版本中定义内容提供程序,专业版可以使用它来提取存储在数据库中的所有信息。