2014-07-18 3 views
8

Я определил некоторые из продуктов приложения в своем приложении. Я загрузил apk в Google Play и добавил продукты покупки inapp в игру Google.Android inapp ответ на отзывList пуст

Я получил мой ServiceConnection определен как следует:

ServiceConnection mServiceConn = new ServiceConnection() { 
     @Override 
     public void onServiceDisconnected(ComponentName name) { 
      mService = null; 
     } 

     @Override 
     public void onServiceConnected(ComponentName name, IBinder service) { 
      mService = IInAppBillingService.Stub.asInterface(service); 
      connect(); 
     } 
    }; 

onServiceConnected функция вызывается, то bindService возвращает TRUE.

Следующая функция connect.

public void connect() { 
     new Thread(new Runnable() { 
      public void run() { 
       try { 

        // Purchase type is "inapp", as required by API v3 
        Bundle skuDetails = mService.getSkuDetails(3, PACKET, "inapp", querySkus); 

        } 

        int response = skuDetails.getInt("RESPONSE_CODE"); 

        Log.e("IAP connect", response + ""); 


        if (response == 0) { 
         ArrayList<String> responseList = skuDetails.getStringArrayList("DETAILS_LIST"); 
         Log.e("size list", responseList.size()+""); 
         ... 
         } 
        } 
      } catch (RemoteException e) { 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
} 

ПАКЕТ здесь установлен в getPackageName(). Код ответа 0, но журнал печатает, что размер списка равен 0. Я понятия не имею, почему список пуст, так как я ввел в Google Play всего 5 элементов, и каждый из них активен. Я ждал 2 дня и тестировал с тремя устройствами, но до сих пор нет предметов.

Я в значительной степени пробовал все, что мог придумать, поэтому любые предложения приветствуются.

ответ

15

опубликуйте ваше приложение для бета/альфа для доступа к функциям биллинга inapp. Это recenty изменилось, но они не объявить об этом :)

http://developer.android.com/google/play/billing/billing_testing.html#draft_apps

Стоит отметить, что вам не придется загружать каждую новую сборку, чтобы иметь возможность протестировать его. Просто используйте тот же versionCode и versionName, и он будет работать, если приложение опубликовано.

+0

Это странно. В другом проекте, который работает практически с одним и тем же кодом, особенно с версией 3, он отлично использует неуправляемые продукты. – Gooey

+0

Он действительно читает «Неуправляемые продукты ведут себя по-другому, если вы используете in-app billing v3, а не биллинг v2 в приложении. Если вы используете выставление счетов в приложении v3, неуправляемые продукты рассматриваются как управляемые продукты и должны быть явно потреблены Подробнее ... Тем не менее, я еще ничего не купил, и я запускаю цикл (избыточный), который потребляет покупки. – Gooey

+0

Ну, может быть, вы правы. Тогда моя единственная идея заключается в том, что ваше приложение не опубликовано. Вы опубликовали его (Бета/Альфа) или это в проекте? – kupsef

11

Ваш код выглядит нормально.

Убедитесь, что вы запрашиваете правильные SKU. Единственные элементы в querySkus должны точно соответствовать идентификатору продукта приложения.

Во-вторых, не забудьте запросить правильный тип, если предметы. Если вы настроили «в продуктах приложения» как автомобиль для покупки в консоли разработчика, используйте «inapp», как и вы. Если у вас есть подписки, используйте «subs» как тип вашего запроса в Google Play.

Надеюсь, это поможет.

+0

Да, я дважды проверил идентификаторы sku как в списке querySkus, так и в Google Play. Это неуправляемые продукты, и все они отображаются активными. – Gooey

+0

Ты спас мой день. Магистр Халдериан. Благодаря тонну. –

+1

Я не могу выдвинуть это сто раз, но я бы! это немного о «подлодках» и «inapp», спасибо! – Arcantos

Смежные вопросы