我有两个版本的同一个应用程序。
当人们从免费版本升级到付费版本时,我希望将免费数据库复制到专业版数据库位置。
如果它属于另一个应用程序,是否可以访问数据库文件? 该文件甚至属于应用程序还是通常可以通过文件系统访问?
最后,如何在不对其进行硬编码的情况下获取数据库文件的路径?
答案 0 :(得分:5)
有没有办法可以访问 数据库文件本身(如果它属于) 另一个申请?
仅当两个应用程序共享一个用户ID并且使用相同的签名密钥签名时。
该文件是否属于 申请还是一般的 可以通过文件系统访问吗?
它可以通过文件系统(/data/data/your.package.goes.here/databases/whatever-you-called-the.db
)获得,但同样,只有当两个应用程序共享一个用户ID并且由相同的签名密钥签名时才能使用。
最后,我如何获得路径 数据库文件没有硬编码吗?
你必须对它进行硬编码,或者至少是编译时已经知道的变量组件(包名和数据库名)。
答案 1 :(得分:1)
数据库文件在哪里?如果它在SD卡上,那么您可以直接访问它。如果您已在私有应用程序目录中创建了数据库,那么您将无法触摸它。您可以在应用程序的免费版本中定义内容提供程序,专业版可以使用它来提取存储在数据库中的所有信息。