如何为我的Android应用程序创建一个“许可证附加组件”?

6

我看到市场上有一些应用程序提供免费版本和“许可证附加组件”,您可以使用带有限功能的免费版本,或购买 apk 许可证,该许可证仅作为原本的“免费”版本的许可证密钥,以解锁隐藏在“免费”版本中的额外功能。

有人可以给我指出如何实现这一点的示例吗?

2个回答

4
您可以使用PackageManagergetInstalledPackages()getInstalledApplications()来简单地检查是否安装了许可证包。

或者,如果您想要更复杂的内容,可以在清单中为主应用程序和许可证apk指定相同的用户id。这意味着两个应用程序都可以访问您的数据(共享首选项、SQLite DB等)。然后,只需要运行一次许可证应用程序;它可以在共享数据中存储一个值,指示应启用扩展功能。主应用程序只需检查此标志并相应地更改其行为。

第二种方法的优点是,运行一次许可证应用程序后可以将其卸载,并且主应用程序将继续允许扩展功能。


1
我喜欢你的第二个解决方案听起来不错,我会调查一下,但从听起来的描述来看,这正是我所需要的...虽然最好定期检查许可证,以防万一用户A)在验证许可证后要求退款,B)将应用程序(包括应用程序数据)备份到另一个设备上。 - 92Jacko

3
更好的方法可能是看一下应用内购买。这将允许您拥有多个“产品”,并根据人们购买的产品启用功能。
许可证apk方法非常简单:您知道许可证apk的包,并检查是否安装了它。如果是,则假定他们已经购买了它,并启用“专业”功能。缺点是它本质上是一个什么都不做的应用程序,人们必须保留它安装。它还会获得自己的评分和下载次数,以及来自不理解概念的人的1星评论,比如“垃圾,什么都不干”。

我认为我更喜欢允许用户从市场下载“许可证”apk,而不是使用“应用内购买”解决方案,仅仅因为大多数人会信任直接向谷歌支付款项,但不会直接向应用程序支付。但这是关于“许可证”应用的评分和评论的好观点,但我只需要在描述中非常清楚地说明它只是一个附加组件,并希望人们阅读:P - 92Jacko
1
没有人会费心去阅读描述。应用内购买也由Android市场处理,因此没有人会直接给你钱。从可用性的角度来看,拥有一个可升级的应用程序而不是两个单独的应用程序要好得多。此外,使用应用内购买功能可以让您在以后决定时拥有不同级别的升级选项。然而,与使用解锁应用程序相比,它实现起来可能会更加困难一些。 - Nikolay Elenkov
是的,我知道这一点,但对于用户(非开发人员),他们会认为您的应用程序直接请求付款,这可能会让人们望而却步。如果我提供各种“升级”阶段,这个解决方案将非常有效,但在我的情况下,我只需要两个(免费和有限制,或付费和全部解锁)。 - 92Jacko
这并不是我的经验。付款对话框明显可识别为属于Android市场。但我猜你的情况可能不同。 - Nikolay Elenkov
谷歌是否已经给我们提供了官方的业务流程建议?如果接受单独许可应用程序的方法,那么我没有意见,但如果不是,我对这种做法感到厌烦。我还没有尝试过应用内购买,但为什么会有这么多开发者使用这种单独许可的方法呢? - Zyoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接