Пустой
Я определил некоторые из продуктов приложения в своем приложении. Я загрузил 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 решило проблему.
Так что нам просто нужно подготовиться к плохим отзывам...