Ответ 1
Как мы можем видеть непосредственно в код настройки IabHElper образца, предоставленного google, ошибка означает:
"Служба биллинга недоступна на устройстве".
Как вы можете прочитать здесь, что ошибка означает
Billing API version is not supported for the type requested
Это Справочник биллинга в приложении (IAB Version 3), поэтому ошибка означает, что IAB v3 не установлен на устройстве.
На самом деле это означает, что у пользователя есть учетная запись google и, возможно, также служба выставления счетов в приложении, но у нее нет последней версии. Это происходит в старых устройствах, и когда пользователь никогда ничего не обновляет, он используется для устройств, где вы можете увидеть старое приложение Market вместо приложения Play.
Итак, ошибка, которую вы должны показать пользователю, и тест, который вы должны выполнить, заключается не в том, что у устройства есть учетная запись google, но если у него установлены и правильно обновлены сервисы воспроизведения Google.
UPDATE:
Если вы ищете код во всем библиотечном SDK и вспомогательные классы, предоставляемые google, это единственное место, где мы можем найти именно то, что именно вы вызываете: startSetup
класса IabHelper
Intent serviceIntent = new Intent(
"com.android.vending.billing.InAppBillingService.BIND");
if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
.isEmpty()) {
// service available to handle that Intent
mContext.bindService(serviceIntent, mServiceConn,
Context.BIND_AUTO_CREATE);
} else {
// no service available to handle that Intent
mServiceConn=null;
if (listener != null) {
listener.onIabSetupFinished(new IabResult(
BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
"Billing service unavailable on device."));
}
}
Это означает, что приложение не может подключиться к службе на устройстве, , поскольку диспетчер пакетов даже не знает об этом. Это единственный вариант, который может вызвать эту ошибку. А что означает, что он не может подключиться к сервису? Это означает одно из следующих:
- У устройства нет установленной службы.
- У него есть старая версия, так как мы знаем, что в последних версиях магазина воспроизведения используется IAB v3.
Таким образом, ваша ошибка может означать только одно из этого, что для вас означает, что вы должны показать пользователю mesagge, например: "У вас нет установленных служб google play, или вам нужно их обновить". И нет других возможностей или ошибок.
Но, если вы хотите сделать это проще для пользователей, вы можете сказать, что им нужно обновить приложение Google Play до последней версии. И это заставит все работать как шарм.