在相同应用程序的两种风格之间共享数据(例如免费/高级)

时间:2014-11-02 11:03:07

标签: android deployment

某些免费应用程序通常可以升级为付费高级版本。是否有已知的打包模式,以便付费应用程序替换免费应用程序,从而获取免费可能存储的所有数据?

据我所知,由于应用程序是通过其唯一的完全限定名称来识别的,因此应用程序无法查看来自其他应用程序的数据,但我有点回想起已经看过这个。或者这是否意味着我必须将两个应用程序视为完全不同,并预见出口/导入功能机制?

(这个问题与这两种口味的实际发展无关,这可以通过多种方式实现,而不是应用程序的打包方式)

1 个答案:

答案 0 :(得分:0)

  

是否有已知的包装模式,以便付费应用取代免费应用,从而获得免费可能存储的所有数据?

不,包名称必须是唯一的。因此,一个应用程序没有"取代"另一个应用程序并获取其数据。

  

或者这是否意味着我必须将两个应用视为完全不同,并预见出口/导入功能机制?

是的,两个应用程序是截然不同的。但是,他们仍然可以交换数据。

这些是常用方法:

  1. 发布一个(免费)应用,其中包含所有功能,但默认情况下仅启用免费功能。发布另一个(付费)应用程序作为解锁程序。您的免费应用程序可以检查是否已安装解锁器并相应地启用了付费功能。建议检查解锁器应用程序的包签名,例如,如答案here中所述。
  2. 与上述类似,但在免费应用中使用应用内购买而非额外的解锁应用。
  3. 将免费和付费应用发布为自包含应用。您可以实施ContentProvider将数据从免费应用转移到付费应用。当然,您也可以实现其他导出/导入方法。但是,使用具有权限的ContentProvider可以轻松自动安全地复制数据,例如,首次启动付费应用时。