首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IabHelper:检查订阅是否自动更新

IabHelper:检查订阅是否自动更新
EN

Stack Overflow用户
提问于 2017-01-04 15:28:10
回答 1查看 681关注 0票数 0

我有一个带有订阅的Android应用程序,我使用IabHelper来查询用户是否有活动订阅。现在我也需要知道这个订阅是否是自动更新的。

我查询订阅状态如下:

代码语言:javascript
复制
private boolean userIsSubscribed() {
    ArrayList<String> skuList = new ArrayList<>();
    skuList.add(PREMIUM_SUBSCRIPTION);
    // Check the subscription status
    try {
        Inventory inventory = iabHelper.queryInventory(true, null, skuList);
        Purchase purchase = inventory.getPurchase(PREMIUM_SUBSCRIPTION);
        // Is the user subscribed?
        if (purchase != null && purchase.getPurchaseState() == 0) {
            // User is subscribed
            Log.d(TAG, "Subscribed.");
            // TODO check if subscription is auto-renewing
            return true;
        } else {
            // User is not subscribed
            Log.d(TAG, "Not subscribed.");
            return false;
        }
    } catch (IabException | NullPointerException e) {
        // There was an error with the subscription process
        Log.e(TAG, e.getMessage(), e);
        return false;
    } catch (IllegalStateException e) {
        // IabHelper not set up
        Log.e(TAG, e.getMessage(), e);
        return false;
    }
}

不幸的是,Purchase对象没有请求autoRenewal字段的方法。有什么别的办法能让我得到这个信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 15:50:59

调用Purchase#isAutoRenewing方法。如果缺少此方法,则可能需要更新引用IAB文件:

代码语言:javascript
复制
    if (purchase != null && purchase.getPurchaseState() == 0) {
        // User is subscribed
        Log.d(TAG, "Subscribed.");
        if (purchase.isAutoRenewing()){
            return true;
        }

https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/Purchase.java

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41467418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档