如何在Android中从Play服务获取Subscription类型拥有的项目?

时间:2015-11-12 05:42:48

标签: android in-app-purchase subscription

我一直在尝试检查用户是否订阅了我的应用的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");

这总是将ownedSku计数返回为0(即,没有订阅的项目从播放服务返回)

 isSkuPurchased = inventory.hasPurchase("MY_SKU_VALUE"); 

通过这种方式,如果我的产品不能用于购买。但这总是回归真实。 (即,该物品仍未购买)

我一直在使用alpha版本的日志测试它。 请帮帮我。我想知道有没有办法从播放服务中获得订阅的产品?

感谢任何帮助。在此先感谢!!

1 个答案:

答案 0 :(得分:3)

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

如果是subscription而不是托管的应用内商品,则应查询有效订阅,使用getPurchases方法,并将产品类型参数设置为“subs

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

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