2013-02-03 44 views
2

我正在创建一个应用程序的高级版,我已经发布了免费的精简版。我想要将Lite版本中的数据转移到Premium版本,或者让两个版本都访问同一个数据库。 Android, two apps one database?帮助回答了以后如何做。如果数据库是在Lite版本中创建的,那么当用户安装Premium版本时会发生什么?为了保存数据,他们是否必须安装Lite版本?另一方面,我可以在独立于任一版本但仍然是沙盒的位置创建数据库吗?最终,我希望能够允许用户在安装Premium版本后删除Lite版本,但仍保留所有数据。我该怎么做呢?或者,我坚持让我的用户在升级到Premium版本后仍能安装这两个版本?从两个不同的应用程序访问数据库

+1

您可以拥有它,以便在优先版本首次运行时检查免费应用程序的内容提供商是否存在。如果找到了,那么它会将整个内容复制到Premium应用程序中存储的内容中。然后,高级应用程序只是访问自己的提供者,而不是免费的。唯一棘手的事情是,如果由于某种原因用户回到使用免费应用程序,高级版本不会得到他们所做的任何更改,但是您可以通过在免费应用程序中检测这种情况来处理,并通知用户或询问他们是否打算打开付费应用程序。 – cottonBallPaws

+0

您是否有兴趣将数据放在应用程序外部的共享位置?如果是这样,我可以描述这个选项。 – ryan1234

+0

@ ryan1234这听起来像我在找什么。不过,我仍然希望数据只能通过我的应用程序或通过ContentProvider访问。我宁愿不将数据放在任何人都可以访问的共享位置。 –

回答

1

我会建议至少看看CouchDB托管数据。您将数据创建为文档(使用JSON),然后创建包含文档的数据库。

此外,您可以创建您的数据的意见 - http://wiki.apache.org/couchdb/HTTP_view_API。您可以将参数传递到视图以过滤数据等。

您可以使用Cloudant(https://cloudant.com/)或IrisCouch(http://www.iriscouch.com/)创建示例CouchDB。我知道Cloudant支持HTTP认证,这样就可以使所有的调用看起来像这样从Android设备:

http://user:[email protected]/database

另一种方法是看其TouchDB处理来自CouchDB的为你复制。 https://github.com/couchbaselabs/TouchDB-Android请记住,这个项目现在有点落后,所以我认为它不是生产准备好的,但今年他们将重点放在了它上面,所以它应该很快就会出现。

只是一个选项,用于通过身份验证建立共享数据库。然后,您可以托管相同的数据,并将精简版与高级版内容严格保留在用户界面中。

+0

谢谢你的建议。目前,我想保持简单,所以更喜欢将数据本地存储在设备上的解决方案。我想将配置添加到将来的版本中,以便用户可以指定存储位置,因此我会将此作为一个选项记住。 –

相关问题