2010-05-17 26 views
8

我在Android手机上安装了几个免费应用,然后“升级”到付费完整版。我的第一个直觉就是创建两个具有相同包名的应用程序,以便安装一个覆盖另一个,但市场中的应用程序必须通过包名来唯一。向Android Market发布相同应用的免费和付费版本的选项和最佳做法

什么是共享代码和资源,对于这种情况下的工作以及相同的应用程序的免费和付费版本和任何命名约定或项目结构的一些模式和最佳实践?

+0

有一个更近期的答案似乎更简单的实现http://stackoverflow.com/questions/3062946/how-can-i-use-the-paid-version-of-my-app-as- a-key-to-the-free-version/3069973#3069973 – rds 2011-03-24 17:00:19

回答

-2

每个应用程序必须有不同的包名称,否则它被认为是“升级”。市场对这条规则非常黑白(我发现了困难的方式)。

对我自己而言,我喜欢在市场上看到的应用程序以游离形式,其始终保持可用,永远免费。它可能缺乏应用程序的付费版本中提供的某些功能,我可能很乐意下载付费应用程序,一旦我熟悉了免费应用程序。

6

直到谷歌出来支持许可应用程序,这就是我们为我们的MixZing应用程序所做的事情(请注意,这假设一个服务器来执行许可证,但如果您愿意失去一个许可证,它不是过程的必要部分大量的收入盗版):

  1. 创建一个“升级”应用程序,人们购买只是为了获得升级许可证。它没有功能,只是启动你的免费应用程序的主要活动(可选额外的,表明它正在从升级应用程序启动)。

  2. 让你的免费应用程序提示他们升级许可证密钥用户一旦它看到升级的应用程序已安装完毕。许可密钥是Google Checkout订单号。

  3. 当用户输入时,让服务器验证许可证。您可以使用Checkout API来执行此操作。

一些注意事项和警告:

  • 由于市场的24小时取消政策,你必须做好准备,接受许可时,他们首先进入它(假设当然这是一个有效的订单号码),然后将用户重置为免费版本(如果他们取消)。

  • 你需要跟踪许可证,并确保人们不共享。

  • 我承认,保持客户端和服务器上赛道的这一切,让状态机右等就是更多的工作比我们最初想象的。

  • 我们给用户一个为期三天的宽限期进入他们的许可密钥,在此期间他们使用的高级功能。

  • 由于我们将许可证绑定到设备ID,因此在人们更换手机时刷新ROM,更改设备ID等等时,会有相当程度的支持。当然,您不必根据设备制作许可证,以及通过自助服务选项来转让许可证将在我们完成后节省大量工作。

总而言之,如果谷歌支持许可应用程序并节省开发人员和用户的麻烦,这将是非常好的!

+0

有趣的方法,并且非常感谢所有的细节。我将浏览API以了解可用于发现哪些软件包已安装以及任何其他“系统反射”宝石可用的方面,因为我还没有用过这些软件。我会说,我已经“升级”的两款游戏没有什么特别,所以我想他们正在做一些事情,比如检查高级版本,发射它的意图,然后自己调用完成(一个实际上崩溃了简历,所以这样就会让一些动态/黑客行为发生)。 Thx再次。 – Rich 2010-05-17 19:16:06

相关问题