是否可以通过单个 productID 获取单个项目 SKU 详细信息? (Android, IabHelper)
Is it possible to get single item SKU details, by single productID?. (Android, IabHelper)
我想使用 IabHelper 获取单个 SKU 详细信息(不是 ArrayList),方法是将单个 productID putString()(而不是 putStringArrayList)
...
final int API_VERSION = 3;
final String PACKAGE_NAME = mContext.getPackageName();
Bundle bandleSKU = new Bundle();
querySkus.putString(GET_SKU_DETAILS_ITEM_LIST, "<someProcuctID>");
Bundle skuDetails = mService.getSkuDetails(API_VERSION, PACKAGE_NAME, type, bandleSKU);
if (null != skuDetails) {
int response = skuDetails.getInt(RESPONSE_CODE);
if (response == BILLING_RESPONSE_RESULT_OK) {
String response = skuDetails.getString(RESPONSE_GET_SKU_DETAILS_LIST);
}
}
...
不,这违反了该调用的约定。您应该做的是创建一个大小为 1 的新 ArrayList
并在其中添加您的产品 ID:
...
Bundle bandleSKU = new Bundle();
ArrayList<String> productIds = new ArrayList<>(1);
productIds.add("<someProductID>");
querySkus.putString(GET_SKU_DETAILS_ITEM_LIST, productIds);
Bundle skuDetails = mService.getSkuDetails(API_VERSION, PACKAGE_NAME, type, bandleSKU);
if (null != skuDetails) {
int response = skuDetails.getInt(RESPONSE_CODE);
if (response == BILLING_RESPONSE_RESULT_OK) {
ArrayList<String> responseList = skuDetails.getStringArrayList(RESPONSE_GET_SKU_DETAILS_LIST);
String productDetailsJson = responseList.get(0);
}
}
...
我想使用 IabHelper 获取单个 SKU 详细信息(不是 ArrayList),方法是将单个 productID putString()(而不是 putStringArrayList)
...
final int API_VERSION = 3;
final String PACKAGE_NAME = mContext.getPackageName();
Bundle bandleSKU = new Bundle();
querySkus.putString(GET_SKU_DETAILS_ITEM_LIST, "<someProcuctID>");
Bundle skuDetails = mService.getSkuDetails(API_VERSION, PACKAGE_NAME, type, bandleSKU);
if (null != skuDetails) {
int response = skuDetails.getInt(RESPONSE_CODE);
if (response == BILLING_RESPONSE_RESULT_OK) {
String response = skuDetails.getString(RESPONSE_GET_SKU_DETAILS_LIST);
}
}
...
不,这违反了该调用的约定。您应该做的是创建一个大小为 1 的新 ArrayList
并在其中添加您的产品 ID:
...
Bundle bandleSKU = new Bundle();
ArrayList<String> productIds = new ArrayList<>(1);
productIds.add("<someProductID>");
querySkus.putString(GET_SKU_DETAILS_ITEM_LIST, productIds);
Bundle skuDetails = mService.getSkuDetails(API_VERSION, PACKAGE_NAME, type, bandleSKU);
if (null != skuDetails) {
int response = skuDetails.getInt(RESPONSE_CODE);
if (response == BILLING_RESPONSE_RESULT_OK) {
ArrayList<String> responseList = skuDetails.getStringArrayList(RESPONSE_GET_SKU_DETAILS_LIST);
String productDetailsJson = responseList.get(0);
}
}
...