在他们的开发者网站上阅读android文档后, 我已经意识到有两种方式来设置购买:
使用base64字符串创建一个IabHelper实例,并使用它来请求购买......绝不提及我必须使用ServiceConnection来绑定Android的IInAppBillingService
。
似乎还有另一种方法,你必须创建一个绑定到ServiceConnection
的{{1}},你必须在那里创建一个Bundle等。
是否可以仅使用我创建IInAppBillingService
实例的方式并调用此实例上从trivialDrive应用程序获取的方法?
答案 0 :(得分:1)
IABHelper在IABHelper上启动Setup()时在内部使用ServiceConnection并绑定到服务。作为文档状态(http://developer.android.com/training/in-app-billing/preparing-iab-app.html),您仍然必须在项目中包含.aidl文件以用于IInAppBillingService。
我强烈建议寻找IABHelper的替代品。许多开发人员(包括我自己)在其实现中发现了许多错误。例如,queryInventoryAsync实现不能正确处理并发。如果你使用IABHelper,你将会遇到很多崩溃。
GitHub上有很多替代品。
答案 1 :(得分:0)
如果您仔细查看Selling In-app Products中描述的Trivial Drive及其IabHelper类,您会注意到它确实使用了ServiceConnection。我建议你使用IabHelper,因为它提供了你需要的所有样板代码。阅读提供的文档,特别是有关安全性的部分。
答案 2 :(得分:0)
如果您查看IabHelper类,您可以看到它包含Implementing In-App Billing教程中的每一段代码。
因此,Preparing Your In-app Billing Application提供了一组类(IabHelper),方便您使用In-App Billing v3。
嗯,在我看来,我们应该使用IabHelper来获取应用内结算实施的最佳实践。您也可以编写自己的课程,因为项目需要一些额外的目的。