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