Android 我什么时候需要IabHelper类来进行InApp购买?
我按照此文档创建了一个测试应用程序,它在单击按钮后启动应用程序内购买过程。Android 我什么时候需要IabHelper类来进行InApp购买?,android,in-app-purchase,in-app-billing,Android,In App Purchase,In App Billing,我按照此文档创建了一个测试应用程序,它在单击按钮后启动应用程序内购买过程。 我发布了一个alpha版本的应用程序,并测试了应用程序内购买,它运行正常 我的问题是,我被其他应用程序内购买示例弄糊涂了。他们都使用一个名为“IbaHelper”的类来进行应用内购买。 但是,似乎不需要这个类来进行应用内购买。 该类甚至在官方的应用内计费V3“TrivalDrive”示例中使用,但在我上面发布的应用内计费指南中从未提及 那么,有人能给我解释一下,为什么以及什么时候我应该使用IABHeloper类吗 先谢谢
我发布了一个alpha版本的应用程序,并测试了应用程序内购买,它运行正常 我的问题是,我被其他应用程序内购买示例弄糊涂了。他们都使用一个名为“IbaHelper”的类来进行应用内购买。 但是,似乎不需要这个类来进行应用内购买。 该类甚至在官方的应用内计费V3“TrivalDrive”示例中使用,但在我上面发布的应用内计费指南中从未提及 那么,有人能给我解释一下,为什么以及什么时候我应该使用IABHeloper类吗 先谢谢你 以下是我用于进行应用内购买的代码的简化版本:
private void doPurchase() {
try {
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), "premium.upgrade",
"inapp", "");
if (buyIntentBundle != null && buyIntentBundle.getInt("RESPONSE_CODE") == 0) {
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(),
Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
}
} catch (SendIntentException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData);
String sku = jo.getString("productId");
Log.i(">>>", "You have bought the "
+ sku
+ ". Excellent choice, "
+ "adventurer!");
} catch (JSONException e) {
Log.e(">>>", "Failed to parse purchase data.");
e.printStackTrace();
}
}
}
}
你说得对,考虑到这个助手,导游有点困惑。基本上,IAB Helper是一个由谷歌员工编写的Helper类,负责很多繁重的工作。因此,如果您使用IAB帮助程序,就不必像在doPurchase()方法中那样编写那么多代码。您只需编写以下行:
mHelper.launchPurchaseFlow(activity, sku, RC_REQUEST, mPurchaseFinishedListener);
购买后的东西也是如此,不要摆弄JSON对象
if (info.getSku().equals(sku))
doSomething();
注意:您必须在之前设置mHelper并实现各种侦听器。当然,IABPhelper在后台做的事情与在方法中做的完全相同。这只是另一层抽象
这就是关于IAB助手的好消息。坏消息是:IAB助手有一些相当严重的错误,这些错误会导致偶尔的崩溃。尽管我仍然建议使用它,因为它会捕捉到更多你甚至想都不敢想的错误
在下面的Android开发者培训网站上,你可以找到一个指南,它展示了如何很好地使用这个工具。
当。谷歌甚至不能编写一个应用内购买的无bug实现,这真是太可怜了。@trans是的,这有点奇怪,因为它是平台的一个基本部分。尽管如此,我已经使用了一个调用的库很长时间,没有遇到任何明显的问题。我强烈推荐所有与IAB相关的产品。