Android应用内购买问题

我已经使用静态响应ID
android.test.purchased在我的帐户中实现了In App购买.现在购买该项目时,Toast弹出窗口显示“谢谢.您的项目很快就会出现.”

我认为到目前为止,每件事都很完美.

我的问题是

>这个Toast来自哪里.我找不到我的代码.
>我怎样才能覆盖这个Toast?是否因为我使用的保留产品ID?一旦我使用自己的产品ID,它会改变吗?
>应该使用哪个被覆盖的函数,知道用户是否购买或取消了请求.

    @Override
    public void onPurchaseStateChange(PurchaseState purchaseState, String itemId,
            long purchaseTime, String developerPayload) {       
        if (purchaseState == PurchaseState.PURCHASED) {             
            // Is it here?
        }
    }

>最后,我可以在onPurchaseStateChange中执行用户界面修改吗?

这是我的onPurchaseStateChange方法

    @Override
    public void onPurchaseStateChange(PurchaseState purchaseState, String itemId,
            long purchaseTime, String developerPayload) {
        if (Consts.DEBUG) {
            Log.i(TAG, "onPurchaseStateChange() itemId: " + itemId + " " + purchaseState);
        }            
        if (purchaseState == PurchaseState.PURCHASED) {
            for (CatalogEntry e : CATALOG) {
                if (e.sku.equals(itemId) &&
                        e.managed.equals(Managed.SUBSCRIPTION)) {
                }
            }
        }
        Toast.makeText(getApplicationContext(), "purchase failed", Toast.LENGTH_LONG).show();
    }

任何帮助将不胜感激! :) 谢谢!

最佳答案 首先,吐司来自市场活动. user1378730在评论中发布的链接说明了如何删除它.

正如您所做的那样在onPurchaseStateChange中确定购买结果是正确的,purchaseState对象有几个您可以检查的枚举.

我不建议在onPurchaseStateChange方法中执行接口交互,因为在购买完成时可能会多次调用它.我从我的活动中跳出一些自定义的方法来决定做什么,例如一个onPurchaseCancel和onPurchaseSuccess方法可以判断它是否已经运行了它自己.这样做还允许您将市场交互与其余代码流分开,从而使调试更容易.

点赞