2013-05-11 10 views
11

मैं सफलतापूर्वक जो सभी ठीक काम करता है को अपने ऐप्स में एप्लिकेशन बिलिंग में लागू कर दिया है। अब मैं वस्तुओं की कीमत (डेवलपर कंसोल में सेट) को पुनः प्राप्त करने का प्रयास कर रहा हूं ताकि मैं इन ऐप को हार्ड-कोडिंग मानों के बिना अपने ऐप में प्रतिबिंबित कर सकूं।एप्लिकेशन बिलिंग getPrice() एंड्रॉयड

इस कोड को काफी स्पष्ट रूप से केवल बटोरता वस्तुओं की कीमतों में पहले से ही सूची जो नहीं है के माध्यम से खरीदा मैं के लिए क्या देख रहा हूँ:

SkuDetails gasDetails = inventory.getSkuDetails(SKU_FULL);  

      if (gasDetails != null){ 
       alert("Gas is " + gasDetails.getPrice());} 

मैं ध्यान दिया है एक docs क्वेरी करने खरीद लेकिन के लिए संघर्ष कर के लिए उपलब्ध वस्तुओं इसे समझिए। मुझे लगता है कि हेल्पर क्लास ने कुछ प्रकार की कीमतों को लागू किया होगा।

तो, मेरे सवाल: किसी को भी मुझे सही दिशा में बात कर सकते हैं?

उत्तर

4

ठीक है, मैं समाधान मिल गया है। मैंने डेवलपर दस्तावेज़ों को समझ लिया है और ऐसा लगता है कि इसमें त्रुटियां थीं।

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"; 


} 
9

आप कार्यान्वयन गूगल द्वारा "TrivialDrive" नमूना में प्रस्तावित का उपयोग कर रहे हैं, तो आप सभी SKU की जानकारी (भले ही वे खरीदा नहीं कर रहे हैं प्राप्त कर सकते हैं:

यह मेरा समाधान IabHelper के अंदर बनाया गया है) pARAMATERS "विवरण" के लिए सही गुजर और "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 { 
संबंधित मुद्दे