Пустой

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

У меня есть мой 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. Я не знаю, почему список пуст, так как я ввел 5 элементов в Google Play, и каждый из них активен. Я подождал 2 дня и испытал с тремя устройствами, но до сих пор нет предметов.

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

У меня была проблема на старом устройстве. Удаление данных приложения Play Services решило проблему.

Так что нам просто нужно подготовиться к плохим отзывам...