我正在尝试为Unity3D编写一个Android插件,以便与Google Play In App Billing交互.我知道那里有现有的插件,但我希望自己做.
看来我需要捕获Android的Activity :: onActivityResult才能通过GPlay IAB SDK成功购买.我的问题是我的Java类不包含Activity,因为我希望它在实际Unity应用程序后面的后台运行.
这是来自GPlay IAB SDK的代码,用于启动购买流程.如果我将"UnityPlayer.currentActivity"作为活动传递,Google Play会弹出,您可以成功购买该产品.但是,您没有收到OnIabPurchaseFinishedListener的成功消息.如果购买不成功(即:您已经拥有该产品),那么我确实收到了回调.
public void launchPurchaseFlow(Activity act, String sku, String itemType, int requestCode,
OnIabPurchaseFinishedListener listener, String extraData)
...
...
act.startIntentSenderForResult(pendingIntent.getIntentSender(),
requestCode, new Intent(),
Integer.valueOf(0), Integer.valueOf(0),
Integer.valueOf(0));
Run Code Online (Sandbox Code Playgroud)
完整来源:http://pastebin.com/xwUbrwTz
以下是Google Play In App Billing SDK(示例代码)中的部分,该部分发布了成功的回调(我没有收到)
/**
* Handles an activity result that's part of the purchase flow in in-app billing. If you
* are calling {@link #launchPurchaseFlow}, then you must call this method from your
* Activity's {@link …Run Code Online (Sandbox Code Playgroud)