我一直在尝试检查用户是否订阅了我的应用程序的谷歌产品。我尝试了以下方法:
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");
通过这种方式,如果我的产品在inventory中无法购买。但这总是真实的。(即该商品仍未购买)
我一直在用alpha版本中的日志测试这一点。请帮我一下。我想知道有没有办法从游戏服务中获得订阅的产品?
感谢您的帮助。提前感谢!!
有两种类型的产品:应用内托管产品和订阅。
如果是订阅而不是应用内托管产品,则应查询活动订阅,使用getPurchases
方法,产品类型参数设置为"subs
"。
Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
"subs", continueToken);
该调用返回一个Bundle,其中包含用户拥有的所有活动订阅。一旦订阅到期而不续订,它将不再出现在返回的捆绑包中。