2011-02-06 103 views
0

似乎普遍接受的方法来实施付费“高级钥匙”应用程序是有免费的应用程序检查,如果付费的安装解锁功能。 这部分是直接进行LVL的实施,但我不知道如何将两者结合起来。 如果付费应用程序从未打算运行,则无法调用许可证验证服务。 我能想到的唯一方法就是让免费应用从付费应用中调用意图并等待响应。付费应用程序可以执行许可证验证。这种方法的问题在于,当免费应用程序调用意图时,它会暂停并随时被操作系统杀死。所以没有什么可以保证应用程序在许可证检查后仍在运行。我如何在我的高级钥匙应用程序中使用Android LVL?

关于如何实现付费应用程序的任何想法或建议,只能是解锁密钥,但也实现LVL?

谢谢实现免费的

回答

0

的一种方式和增强版将在两家独立的APK分裂的功能。免费版本将被打包为许多正常活动,增强版本的功能将通过单独的apk中的远程服务来实现。

两者通过使用AIDL的远程接口进行通信。在启动时,免费应用会尝试绑定到服务,如果不能,则会超时。如果一个连接被做成免费应用程序中的静态属性设置为true。免费应用程序在调用提供增强功能的任何例程之前测试此属性。

我已经做了这件事,但没有在市场上发布它,并且不知道LVS的任何内容,但是看不到为什么服务apk不能执行此功能并实现诸如'licenceVerified ()',可以通过AIDL将结果返回给免费的应用程序。在我的项目中,服务实际上做了很多其他计算,它将信息返回给免费部分,所以即使免费部分被黑客攻击,除非服务apk实际存在,否则免费应用会崩溃,如果一个不存在的方法远程接口被调用。

+0

我喜欢这种方法,我不得不尝试一下。谢谢 – 2011-02-11 06:56:08

1

正如NickT所建议的那样,我没有发现问题以及通过服务来完成。

我看到的其他选项可能是通过滥用内容提供者来做到这一点。内容提供者上的查询可能在许可证被验证时阻塞,因此你需要异步查询它,例如在主要活动中显示某种繁忙的微调。

这两种方法似乎比通过意图产生另一种活动更容易(这是最初的方法,对吗?)。

+1

注意:应用内结算将很快为Android提供(第一季度末)。这也可能是一个选择。 – sstn 2011-02-06 10:17:33

相关问题