2013-06-17 12 views
18

Jestem stoi dokładnie ten sam problem jakBłąd odświeżania ekwipunku (zapytanie o ceny przedmiotów). (Odpowiedź: 6: Błąd)

In-app billing v3 unable to query items without network connection or in airplane/flight mode

To nie zawsze występuje. Musisz przełączyć telefon w tryb samolotowy lub wyłączyć wifi, odczekać kilka godzin, pojawi się tylko problem. Zostanie wyświetlony następujący komunikat o błędzie.

Nie można wysłać zapytania do asortymentu: IabResult: Błąd odświeżenia stanu w magazynie (zapytanie o ceny produktów). (Odpowiedź: 6: Błąd)

Autor zasugerował użycie

List<String> skulist = new ArrayList<String>(); 
skulist.add("my_sku_name1"); 
skulist.add("my_sku_name2"); 
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener); 

aby rozwiązać ten problem.

Jednak to nie działa dla mnie. Ten sam problem nadal występuje.

Jakiekolwiek obejście tego problemu? Dzięki.

+2

Mam tylko bardzo pobieżną znajomość z klasą IabHelper (z innego pytania SO), więc jest to w istocie przebicie w ciemności. Spróbuj tego wywołania zamiast: 'mHelper.queryInventoryAsync (false, null, mGotInventoryListener);' (lub, równoważnie, 'mHelper.queryInventoryAsync (false, mGotInventoryListener);'). – jerry

+0

Czy rozwiązałeś swój problem ?! –

+0

Nie. Po prostu czytam stan zakupu w aplikacji, który jest przechowywany wcześniej, gdy połączenie sieciowe nie działa. –

Odpowiedz

8

Jak Jerry zasugerował w swoim komentarzu, można obejść ten problem poprzez wywołanie

mHelper.queryInventoryAsync (false, mGotInventoryListener);

zamiast

mHelper.queryInventoryAsync (mGotInventoryListener);

Mam wyłączone wszystkie połączenia sieciowe z mojego urządzenia (przez ponad jeden dzień) i mogę niezawodnie odtworzyć/naprawić problem z tą pojedynczą zmianą parametru. Wygląda na to, że sam zakup zostanie zapisany w pamięci podręcznej na dłużej (w nieskończoność?) Przez usługę rozliczeń w aplikacji niż szczegóły sku, takie jak cena.

+1

Ale teraz nie pobierasz za skuDetails, co możesz chcieć. Miej to w pamięci. – JacksOnF1re

+0

To nie działa dla mnie! ------ Nawet mHelper.queryInventoryAsync (true, skuList, mGot) ------- Nawet mHelper.queryInventoryAsync (false, skuList, mGot). –

3

Wygląda na to, że Google Play wygasło w buforowanych pozycjach magazynowych. Może to być szczegóły implementacji działania aplikacji Google Play.

Błąd 6 jest zdefiniowany jako BILLING_RESPONSE_RESULT_ERROR.

Jeśli jest krytyczna, aby zaoferować inwentaryzacji na zakup nawet bez połączenia z internetem, może trzeba cache ostatni powrócił Wynika sobie, i używać ich w przypadku, zapytań zawiedzie.

Jednak zakup również nie działałby w takim scenariuszu, więc po co zawracać sobie głowę?

+0

Na podstawie połączonego pytania przeczytałem problem PO jako wyświetlający przedmioty, które już zostały kupione, nie oferując nowych przedmiotów na sprzedaż. W takim przypadku buforowanie ich samemu jest bardziej przydatne (zakładając, że wyniki rzeczywiście wygasną, nie mam pojęcia, czy to prawda, czy nie). – jerry

Powiązane problemy