IabHelper:检查订阅是否自动续订
IabHelper: check if subscription is auto renewing
我有一个带有订阅的 Android 应用程序,我使用 IabHelper
查询用户是否有有效订阅。现在我还需要知道这个订阅是否自动续订。
我是这样查询订阅状态的:
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
对象没有请求自动更新字段的方法。我还有其他方法可以获得这些信息吗?
调用Purchase#isAutoRenewing
方法。如果缺少此方法,您可能需要更新参考 IAB 文件:
if (purchase != null && purchase.getPurchaseState() == 0) {
// User is subscribed
Log.d(TAG, "Subscribed.");
if (purchase.isAutoRenewing()){
return true;
}
我有一个带有订阅的 Android 应用程序,我使用 IabHelper
查询用户是否有有效订阅。现在我还需要知道这个订阅是否自动续订。
我是这样查询订阅状态的:
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
对象没有请求自动更新字段的方法。我还有其他方法可以获得这些信息吗?
调用Purchase#isAutoRenewing
方法。如果缺少此方法,您可能需要更新参考 IAB 文件:
if (purchase != null && purchase.getPurchaseState() == 0) {
// User is subscribed
Log.d(TAG, "Subscribed.");
if (purchase.isAutoRenewing()){
return true;
}