Я вызываю queryinventoryasync из компонента биллинга в приложении xamarin для Android, но я всегда получаю 0 возвращенных продуктов, хотя я добавил 4 продукта в приложении в Google Play. Я сделал следующее, чтобы попытаться заставить его работать:
- Добавлены продукты для продажи через приложение в Google Play и установлены как активные
- загрузил мой APK для альфа-тестирования
- создал тестовую учетную запись в Google Play и вошел в систему с этой учетной записью на моем устройстве при тестировании покупок в приложении
- В мой проект добавлен компонент Xamarin InAppBilling.
- Установите разрешение приложения для выставления счетов: android: name = "com.android.vending.BILLING"
- Подключение к биллингу в приложении работает нормально.
- Я использую для тестирования физическое устройство.
- Я даже проверяю резервные идентификаторы, и они не работают.
Вот мой код:
static internal InAppBillingServiceConnection _serviceConnection;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
_serviceConnection = new InAppBillingServiceConnection(this, APP_KEY);
_serviceConnection.OnInAppBillingError += ServiceConnection_OnInAppBillingError;
_serviceConnection.OnConnected += () =>
{
GetInventory();
};
_serviceConnection.Connect();
global::Xamarin.Forms.Forms.Init(this, bundle);
Core.App.ALLOW_ADULT_SWITCH = false;
LoadApplication(new Core.App());
}
//For testing purposes only.
private async void GetInventory()
{
var products = await _serviceConnection.BillingHandler.QueryInventoryAsync(new List<string>
{
ReservedTestProductIDs.Purchased
},
ItemType.Product);
if (products == null)
{
return;
}
}
private void ServiceConnection_OnInAppBillingError(InAppBillingErrorType error, string message)
{
throw new System.Exception(message);
}
protected override void OnDestroy()
{
if (_serviceConnection != null && _serviceConnection.Connected)
_serviceConnection.Disconnect();
_serviceConnection = null;
base.OnDestroy();
}