Android检查之前是否购买了应用内购买

Android检查之前是否购买了应用内购买,第1张

概述我想在我的Android应用程序中进行应用内购买.我用这个谷歌样本:http://developer.android.comraining/in-app-billing/preparing-iab-app.html#GetSample我在我的androidstudio项目中实现了这个.在开发者控制台中,我将应用内购买和gmail地址设置为测试帐户.在我的设备(而不是模

我想在我的Android应用程序中进行应用内购买.我用这个谷歌样本:http://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample

我在我的androID studio项目中实现了这个.在开发者控制台中,我将应用内购买和gmail地址设置为测试帐户.

在我的设备(而不是模拟器)上,我使用此测试帐户登录.我启动我的应用程序并点击“购买高级版”并完成此过程.

现在我想显示一个按钮(文本“恢复”),用户可以恢复他的应用内购买,如果他/她之前购买了高级功能.

我有这个代码:

IabHelper.OnIabPurchaseFinishedListener mpurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {        public voID onIabPurchaseFinished(IabResult result, Purchase purchase) {            Log.e("-->", "Purchase finished: " + result);            if (mHelper == null) return;            if (result.isFailure()) {                Log.e("-->","Error purchasing: " + result);                return;            }            if (!verifyDeveloperPayload(purchase)) {                Log.e("-->","Error purchasing. Authenticity verification Failed.");                return;            }            SharedPreferences prefs = this.getSharedPreferences("xxx", Context.MODE_PRIVATE);            SharedPreferences.Editor editor = prefs.edit();            editor.putBoolean("Premium", true);            editor.commit();            Log.e("-->", "Premium: " + prefs.getBoolean("Premium", false));}};

如果我再次按下“购买”按钮并且我之前购买了此按钮,我会在log cat中收到此消息:

–>: Purchase finished: IabResult: Unable to buy item (response: 7:Item Already Owned), purchase: null
–>: Error purchasing: IabResult: Unable to buy item (response: 7:Item Already Owned)

我的问题是,如何检查应用内购买之前是否购买过?

解决方法:

 mIabHelper.queryInventoryAsync(true, "your_sku", mGotInventoryListener);// Listener that's called when we finish querying the items and subscriptions we own    IabHelper.queryInventoryFinishedListener mGotInventoryListener = new IabHelper.queryInventoryFinishedListener() {        public voID onqueryInventoryFinished(IabResult result, Inventory inventory) {            Log.d("PAY", "query inventory finished.");            // Have we been disposed of in the meantime? If so, quit.            if (mIabHelper == null) return;                    Purchase purchase = inventory.getPurchase("your_sku");                    if (purchase != null) {                        //purchased                    }                                }

总结

以上是内存溢出为你收集整理的Android检查之前是否购买了应用内购买全部内容,希望文章能够帮你解决Android检查之前是否购买了应用内购买所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存