将付费应用更改为免费时的Google Play许可

时间:2013-06-12 14:57:52

标签: android licensing google-play

我目前有两个版本的应用程序 - 包含广告的免费版本和没有广告的付费版本。我收到了大量用户请求,以简化从免费版到付费版的转换,我真的很想这样做。

这样做的一种方法是简单地删除免费版本,免费使用付费版本,然后添加应用内购买以移除广告。

我唯一担心的是:我如何能够确定我的哪些用户之前购买了该应用程序?是否可以使用Google Play许可?

2 个答案:

答案 0 :(得分:2)

为了获得带有IAB的免费版本,确实没有必要删除付费版本(或将其转换为免费版本),并且有充分的理由将付费版本作为单独的应用程序保留在免费版本中。< / p>

一个原因是,根据您的应用支持的Android版本,有多达10%的设备可能不支持应用内付款(例如,因为他们的旧版Android电子邮件不会自动支付更新并不支持IAB3)。这提供了保持付费版本的论据。

此外,如果用户将您的免费应用程序安装到不支持IAB3的设备上,那么您可以让您的应用程序检测到该应用程序,并提供指向付费版本的链接,以便将其安装为备用(到IAB3)升级路径当他们向应用发出信号表示他们已准备好升级时。

当然,如果您确实保留了付费版本,那么区分已付费用户和未付费用户就没有问题。

如果您决定保留付费版本,则可以只在免费版本中添加应用内结算,以便升级到付费功能集。这将满足那些正在寻找比卸载免费应用程序并安装付费应用程序更具破坏性的升级路径的用户。

如果您还没有这样做,则可能需要创建一个项目库来保存您应用的大部分功能,以便在您的免费版和付费版之间共享。您最终可能会将付费项目转换为该库,然后创建两个使用该库的付费和免费项目。如果您将两个版本合并为一个免费版本的动机之一是关于维护两个应用程序,那么使用项目库可以显着减少开销,尽管它不会为零。

在这方面,我发现在每个使用这样一个项目库的应用程序中创建一个活动是有用的,该项目库继承自项目库中的主要活动。主项目库活动可以是一个抽象类,某些方法由在使用它的APK生成项目中从其继承的活动类提供;或者,某些方法可以以无害的方式默认(而不是定义为抽象),然后在相应项目中的派生类中重写。这些覆盖可用于根据使用它的特定应用程序(例如,免费与付费)的要求来定制项目库的行为。您还可以覆盖预定义的方法,如onCreate(),onResume()等,以完成区分相应(例如,免费与付费)应用之间行为的相同目的。

最后,我不会过分担心在两个APK之间拆分您的安装,因为免费版本可能只是因为它可以轻松安装和试用而获得最大份额,只要IAB升级过程是无缝的。

答案 1 :(得分:0)

值得注意的是,您不能免费使用付费版本,它总是有价格标签。

我的建议是将IAB添加到免费版本,以便用户可以在应用内升级。您还可以添加检查以查找设备上正在安装的付费版本的软件包名称。如果您找到它,那么您可以在免费版本中解锁该功能,而无需用户购买升级,因为您知道他们已安装付费版本。

唯一的问题是,虽然你可以坚持安装付费版本的标志,如果他们在新设备或工厂重置设置,例如,当他们放置免费版本时,专业版的标志消失了,将不会安装付费软件包,因此系统会提示他们再次付款以进行升级。没有真正的方法来解决这个问题。