В приложении Биллинг getPrice () Android
Я успешно реализовал в приложении биллинг в мое приложение, которое все работает нормально. Теперь я пытаюсь получить цену элементов (установить в консоли разработчика), чтобы я мог отражать эти цены в своем приложении без жестких значений кодирования.
этот код, очевидно, только собирает цены на товары, уже приобретенные через инвентарь, который не то, что я ищу:
SkuDetails gasDetails = inventory.getSkuDetails(SKU_FULL);
if (gasDetails != null){
alert("Gas is " + gasDetails.getPrice());}
Я посмотрелdocs запрос элементы, доступные для покупки, но пытаюсь понять его. Я бы подумал, что вспомогательный класс реализовал бы какой-то метод get prices.
Итак, мой вопрос: Может ли кто-нибудь указать мне в правильном направлении?
2 ответов
Если вы используете реализацию, предложенную в образце" TrivialDrive " Google, вы можете получить информацию обо всех SKU (даже если они не приобретены), передав true в paramaters "details" и "moreSkus" в методе, который запрашивает инвентарь
/** * Queries the inventory. This will query all owned items from the server, as well as * information on additional skus, if specified. This method may block or take long to execute. * Do not call from a UI thread. For that, use the non-blocking version {@link #refreshInventoryAsync}. * * @param querySkuDetails if true, SKU details (price, description, etc) will be queried as well * as purchase information. * @param moreItemSkus additional PRODUCT skus to query information on, regardless of ownership. * Ignored if null or if querySkuDetails is false. * @param moreSubsSkus additional SUBSCRIPTIONS skus to query information on, regardless of ownership. * Ignored if null or if querySkuDetails is false. * @throws IabException if a problem occurs while refreshing the inventory. */ public Inventory queryInventory(boolean querySkuDetails, List<String> moreItemSkus, List<String> moreSubsSkus) throws IabException {
Ок, я нашел решение. Я расшифровал документы разработчика, и, похоже, в нем были ошибки.
Это мое решение, созданное в IabHelper:
public String getPricesDev(String packageName) throws RemoteException, JSONException{
ArrayList<String> skuList = new ArrayList<String>();
skuList.add("full.discount.fetch");
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = mService.getSkuDetails(3,packageName, "inapp", querySkus);
int response = skuDetails.getInt("RESPONSE_CODE");
if (response == 0) {
ArrayList<String> responseList
= skuDetails.getStringArrayList("DETAILS_LIST");
for (String thisResponse : responseList) {
JSONObject object = new JSONObject(thisResponse);
String sku = object.getString("productId");
String price = object.getString("price");
if(sku.contains("full.discount.fetch")) return price;
}
}
return "Not found";
}