如何从 Android 中的播放服务获取订阅类型拥有的项目?

How to get Subscription type owned items from play service in Android?

我一直在尝试检查用户是否订阅了我应用程序的 google 产品。我试过以下方法:

Bundle ownedItems = mService.getPurchases(3, getPackageName(),
            "inapp", null);
    if (ownedItems != null) {
        int response = ownedItems.getInt("RESPONSE_CODE");
        if (response == 0) {
            ArrayList ownedSkus = ownedItems
                    .getStringArrayList("INAPP_PURCHASE_ITEM_LIST");

这总是 returns ownedSku 计数为 0(即,没有订阅的项目 return 来自播放服务)

还有

 isSkuPurchased = inventory.hasPurchase("MY_SKU_VALUE"); 

通过这种方式,如果我的产品在库存中无法购买。但这总是 return 正确。 (即该商品仍未购买)

我一直在使用 alpha 版本中的日志对此进行测试。 请在这里帮助我。我想知道有没有办法从播放服务中获取订阅的产品?

感谢任何帮助。提前致谢!!

有两种类型的产品:受管理的应用内产品和订阅。

如果它是 subscription 而不是受管理的应用内产品,您应该查询有效订阅,使用 getPurchases 方法,并将产品类型参数设置为“subs".

Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
                   "subs", continueToken);

调用 returns 包含用户拥有的所有活动订阅的捆绑包。一旦订阅到期而没有续订,它将不再出现在返回的 Bundle 中。