作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我一直在尝试检查用户是否订阅了我的应用程序的谷歌产品。我尝试了以下方法:
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");
通过这种方式,如果我的产品在库存中无法购买。但这总是返回 true。 (即该商品仍未购买)
我一直在使用 alpha 版本中的日志对此进行测试。请在这里帮助我。我想知道有没有办法从播放服务中获取订阅的产品?
感谢任何帮助。提前致谢!!
最佳答案
有两种类型的产品:受管理的应用内产品和订阅。
如果它是 subscription您应该使用 getPurchases
方法查询有效订阅,而不是托管应用内产品,并将产品类型参数设置为“subs
”。
Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
"subs", continueToken);
该调用返回一个 Bundle,其中包含用户拥有的所有 Activity 订阅。一旦订阅在没有续订的情况下到期,它将不再出现在返回的 Bundle 中。
关于android - 如何从 Android 中的播放服务获取订阅类型拥有的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665140/
我是一名优秀的程序员,十分优秀!