Итак, мы хотим поддерживать биллинг внутри приложения через API биллинга Google и через AliPay для Китая.Я написал метод, который должен возвращать либо GooglePlay, либо клиент для выставления счетов AliPay (в зависимости от того, что доступно).Мне нужен способ определить, доступен ли пользователю биллинговый сервис Google, чтобы я знал, какой клиент вернуть.
До сих пор я сталкивался с несколькими разными вариантами и не уверен, какой из нихМне нужно:
- Создать
ServiceConnection
и проверить результат IInAppBillingService.Stub.asInterface(service)
.isBillingSupported(3, context.packageName, "inapp")
Вот полный код: https://gist.github.com/first087/9088162
Этонемного утомительно, так как мне нужно подождать, пока служба подключится, получить асинхронный результат и затем вернуть правильный диспетчер биллинга, но на первый взгляд кажется, что это именно то, что мне нужно.
Используйте класс
GoogleApiAvailability
и проверьте результат
isGooglePlayServicesAvailable(context)
Этот параметр намного чище, чем первый, но я не уверен, что он возвращает то, что мне нужно, а такжетребует, чтобы я добавил библиотеку com.google.android.gms:play-services-base
в свой проект.
Проверьте, установлено ли приложение GooglePlay на устройстве.
Это наиболее ненадежный вариант (я думаю), поскольку вы можете установить приложение вручную, даже если оно не было предварительно установленопроизводителем, и тогда вы, возможно, не сможете совершать покупки, так как находитесь в Китае, а они этого не позволяют.
Кто-нибудь имел подобный опыт?Как правильно определить, может ли пользователь совершать покупки через PlayStore?