我们的Android应用试图从Google Play获取应用内商品的价格。我们的一些应用内产品是订阅,有些则不是。在调用应用内结算服务的getSkuDetails
方法获取价格时,我们只允许传入一个type
字符串作为第三个参数。
现在该字符串设置为“inapp”,但除非我们所有的应用内商品都属于该类型,否则它将无效。所以它让我想知道:你能在Android中拥有不同的应用内产品类型吗?例如,某些产品是否可以订阅,其他产品是否可以消费?
我们的代码如下,感谢任何人都能给予的帮助。
IInAppBillingService service = activity.getBillingService();
ArrayList<String> skuList = new ArrayList<String>();
skuList.add("in_app_subscr_1");
skuList.add("in_app_subscr_2");
skuList.add("in_app_non_subscr_1");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = service.getSkuDetails(3,
activity.getPackageName(), "inapp", querySkus);
答案 0 :(得分:1)
我想应该允许。尝试维护两个不同的skuList
并将其传递给getSkuDetails
各自的产品类型:inapp
用于应用内商品,subs
用于订阅。
您可能必须遵循应用内商品和订阅的单独工作流程。例如。要检索用户从您的应用中进行的购买的信息,请调用getPurchases
方法,并将产品类型参数设置为&#34; inapp
&#34;适用于应用内商品。
Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
要查询有效订阅,请使用getPurchases
方法,并将产品类型参数设置为&#34; subs
&#34;。
Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
"subs", continueToken);