Android 检查用户是否可以通过PlayStore进行应用内计费
因此,我们希望通过谷歌的计费API和中国的支付宝支持应用内计费。我写了一个方法,可以返回GooglePlay或支付宝计费客户端(以可用的为准)。我需要一种方法来确定用户是否可以使用谷歌的计费服务,以便我知道返回哪个客户机 到目前为止,我遇到了几个不同的选择,我不确定哪一个是我需要的:Android 检查用户是否可以通过PlayStore进行应用内计费,android,google-play-services,in-app-billing,android-billing,Android,Google Play Services,In App Billing,Android Billing,因此,我们希望通过谷歌的计费API和中国的支付宝支持应用内计费。我写了一个方法,可以返回GooglePlay或支付宝计费客户端(以可用的为准)。我需要一种方法来确定用户是否可以使用谷歌的计费服务,以便我知道返回哪个客户机 到目前为止,我遇到了几个不同的选择,我不确定哪一个是我需要的: 创建ServiceConnection并检查IInAppBillingService.Stub.asInterface(服务)的结果 .isBillingSupported(3,context.packageNam
ServiceConnection
并检查IInAppBillingService.Stub.asInterface(服务)的结果
.isBillingSupported(3,context.packageName,“inapp”)
GoogleAppAvailability
类并检查isGooglePlayServicesAvailable(上下文)
com.google.android.gms:play services base
库添加到我的项目中
有人有过类似的经历吗?如何正确判断用户是否可以通过PlayStore进行购买?因此,在中国测试了这些方法后,我们发现,一部手机安装了PlayStore应用程序,但没有安装PlayStore应用程序 已安装PlayStore应用程序且未安装VPN
返回代码2-GoogleAppAvailability.isGooglePlayServicesAvailable()
连接结果。需要服务版本更新
返回代码3-IInAppBillingService.isBillingSupported()
BillingResponse.BILLING\u不可用
返回代码9-GoogleAppAvailability.isGooglePlayServicesAvailable()
连接结果。服务\u无效
返回代码3-IInAppBillingService.isBillingSupported()
BillingResponse.BILLING\u不可用
返回代码0-GoogleAppAvailability.isGooglePlayServicesAvailable()
ConnectionResult.SUCCESS
返回代码3-IInAppBillingService.isBillingSupported()
BillingResponse.BILLING\u不可用
结论:确定账单是否实际可用的最安全方法是通过
isBillingSupported()
方法。如果您不想通过问题选项1中所示的“黑客”方式使用它,您可以实例化一个新的BillingClient
,然后等待其startConnection()方法的回调
以下是我编写的协同程序的一个示例,它为您提供了BillingManager的两个实现之一,具体取决于是否可以通过PlayStore进行应用内计费。如果手动管理服务连接对您来说太单调乏味,您可能会觉得很有帮助。@greeble31我正在使用BillingClient,但在实现中,我想能够决定是否使用谷歌账单客户端或我们的支付宝客户端,才能得到实现的一个实例。我想我应该说<代码> BlieClient。ISTrimeUpRePufPosid()/代码>,不检查ValueType EnUM的值:请考虑主演,但<代码> ISBILIN支持()
在所有3种情况下返回相同的值。我以为你想要一种区分正常计费和非正常计费的方法?@Mark,这正是它的作用所在。PlayStore计费在中国不受支持,此方法正确地确定在所有不同的场景中都不可用。但对于“安装了VPN的PlayStore应用程序”,PlayStore计费在中国对我有效。你是说没有?从我们在中国的同事的测试来看,似乎没有,或者至少这些是他们记录并给我们的回复。他们可以尝试以下步骤:如果在过去几个月发生了一些变化,使VPN不再工作,我会感到惊讶。