我一直在尝试检查用户是否订阅了我的应用程序的谷歌产品。我尝试过以下方法:
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");
这样,如果我的产品在inventroy中没有可供购买。但这总是返回 true。 (即该商品仍未购买)
我一直在使用 alpha 版本中的日志对此进行测试。 请在这里帮助我。我想知道有没有办法从播放服务中获取订阅的产品?
感谢任何帮助。提前致谢!!
最佳答案
有两种类型的产品:托管应用内产品和订阅。
如果是subscription您应该查询 Activity 订阅,而不是托管的应用内商品,使用 getPurchases
方法,并将产品类型参数设置为“subs
”。
Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
"subs", continueToken);
该调用返回一个 Bundle,其中包含用户拥有的所有 Activity 订阅。一旦订阅到期且未续订,它将不再出现在返回的 bundle 中。
关于android - 如何从 Android 中的播放服务获取订阅类型拥有的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665140/