2013-02-05 26 views
5

कौन सा प्रतिक्रिया स्थिति कोड Google Play इन-ऐप बिलिंग सेवा {ice, er} V3 नेटवर्क टाइमआउट स्थिति पर वापस आ जाएगा? क्या यह वर्दी इसके सभी कार्यों में है?एंड्रॉइड: टाइमआउट पर इन-एप बिलिंग वी 3 रिटर्न में कौन सा प्रतिक्रिया कोड करता है?

+0

मुझे भी इसी तरह के मुद्दे का सामना करना पड़ा। कृपया मेरी समस्या की जांच करें। http://stackoverflow.com/questions/16495510/iab-error-you-already-owned-this-item –

+0

@YanLinAung मुझे लगता है कि क्या एक एक "समान मुद्दा" के रूप में अपने मुद्दे को देखता है पर निर्भर करता है परिप्रेक्ष्य। ;) –

उत्तर

7

मैं यहां अपने निष्कर्षों का वर्णन करूंगा। मैंने मेजबान के प्लग को खींचकर, एक पूरी तरह से विशेषीकृत जीपी स्थापित (जीपी स्टोर वी 3.10.10, जीपी सेवा 2.0.12, जी सेवा फ्रेमवर्क 4.1.2) के साथ एक एवीडी पर इसका परीक्षण किया है।

  • getPurchases() विधि एक कैश्ड परिणाम देता है यदि संभव हो तो (कृपया ध्यान दें कि हम कर रहे हैं नहीं सेवा यहां की एक कैश बाहर लेकिन getPurchases के प्रत्यक्ष कॉल के बारे में बात)। बेशक, इसका मतलब है कि स्थानीय डेटा के नुकसान के कारण सेवा को फिर से शुरू किया जा रहा है, सिवाय इसके कि किसी को हमेशा कैश किए गए परिणाम मिलेंगे - एक मामला जो बहुत अधिक संभावना नहीं है और अक्सर विशेष तरीकों से इलाज नहीं किया जाना चाहिए आवेदन स्तर
  • consumePurchase() विधि 20 सेकंड के अनुमानित आंतरिक नेट टाइमआउट के बाद पूर्णांक मान 6 (BILLING_RESPONSE_RESULT_ERROR) वापस कर देगा (इसलिए कॉलर द्वारा परिणाम कोड दिखाई देने तक थोड़ा सा समय जोड़ें)। को Fatal error during the API action के रूप में वर्णित किए जाने के बावजूद मुझे संदेह था क्योंकि कोई अन्य त्रुटि कोड यहां समझ में नहीं आएगा; दुर्भाग्य से, शब्द घातक अभी भी एक अस्थायी स्थिति जैसे टाइमआउट के लिए कुछ हद तक अनुचित है।
  • getSkuDetails()consumePurchase() जैसा व्यवहार करता प्रतीत होता है। अद्यतन: अब सबूत हैं कि getSkuDetails() स्थानीय सेवा के भीतर कैश की गई जानकारी तक पहुंच सकते हैं।
  • ऐसा लगता है कि getBuyIntent() कनेक्टिविटी के बिना ठीक काम करता है अगर आइटम पहले से ही सेवा के लिए जाना जाता है। यह बताता है कि हार्टोक एक खाली जीपी खरीद स्क्रीन क्यों देखता है: कनेक्टिविटी के बिना आईएबी वी 3 से खरीद उद्देश्य प्राप्त करने में कोई समस्या नहीं है।

निष्कर्ष: इन-ऐप बिलिंग सेवा V3 आंतरिक कैश और 20 सेकंड के सर्वर कनेक्शन टाइमआउट के साथ काम करता प्रतीत होता है। सर्वर संचार त्रुटियों के लिए जो स्थानीय कैश हल नहीं कर सकता है, प्रतिक्रिया कोड 6 का उपयोग किया जाता है।

+0

तो मेरा स्थानीय कैश और सर्वर सिंक से बाहर होने पर क्या होता है? उदाहरण के लिए, मुझे लगातार "आप पहले से ही इस आइटम का स्वामी" संवाद प्राप्त करते हैं, भले ही खरीददारी आइटम वापस नहीं लौटा रही है, यह कहता है कि मेरा स्वामित्व है? – VicVu

+0

@Vee आप एक एप ypu का जिक्र कर रहे हैं खुद को लिखा है, है ना? यदि हां, तो क्या आप Google उदाहरण कोड का उपयोग करते हैं? (संकेत: यह मजबूत नहीं है।) मुझे यकीन नहीं है कि "आपके पास पहले से ही यह है" संवाद कहां से आता है; अगर इसे Google Play ऑनलाइन भाग द्वारा प्रदर्शित किया जा रहा है, तो संभवतः आपके डिवाइस पर Google Play Services कैश के साथ कोई समस्या है; उस सेवा के स्थानीय डेटा मिटा दें। यदि वार्तालाप Google Play IAB उदाहरण कोड से निकलता है, तो यह एक अलग कहानी होगी - जहां तक ​​मुझे याद है, यह वैधता समय टिकटें के आधार पर _additional_ कैशिंग करता है। यदि आवश्यक हो तो अधिक जानकारी पोस्ट करें। –

+0

@ एक वन [Google Play आईएबी उदाहरण कोड के बारे में खोज मजबूत नहीं है] (http://stackoverflow.com/a/14935976/1856738); यह किसी अन्य पहलू से संबंधित है लेकिन मुझे उस कोड पर भरोसा नहीं होगा जो ऐसी महत्वपूर्ण त्रुटि स्थिति की जांच नहीं करता है। –