Amazon IAP - 未调用 PurchaseObserver 回调(onSdkAvailable 除外)
Posted
技术标签:
【中文标题】Amazon IAP - 未调用 PurchaseObserver 回调(onSdkAvailable 除外)【英文标题】:Amazon IAP - PurchaseObserver callbacks not called (except onSdkAvailable) 【发布时间】:2013-03-10 17:35:21 【问题描述】:我使用 ButtonClicker 示例作为基本框架将我们的游戏连接到亚马逊商店。我正在尝试实现店面,因此在onItemDataResponse
回调中构建可购买商品的目录。但是这和onGetUserIdResponse
永远不会被调用。但是 sdk 测试器正在记录成功的项目数据响应广播和用户 ID 响应广播并记录 amazon.sdktester.json 的内容。请注意 onSdkAvailable
正在被调用....有其他人经历过吗?如果是这样,你是如何绕过它的?任何帮助或建议都会很棒。
谢谢克里斯
【问题讨论】:
【参考方案1】:我刚刚遇到了你描述的同样的问题。 (我没有收到采购经理的回电)
在我的清单中,我有:
<receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver"
android:exported="false" >
<intent-filter>
<action android:name = "com.amazon.inapp.purchasing.NOTIFY" android:permission = "com.amazon.inapp.purchasing.Permission.NOTIFY" />
</intent-filter>
</receiver>
删除 android:exported="false" 属性为我解决了这个问题。最初我添加了 android:exported="false" 属性,因为它删除了警告“exported receiver requires no permission”
现在我的清单看起来像这样,并且可以使用 sdk 测试器正确测试应用内购买:
<receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver" >
<intent-filter>
<action android:name = "com.amazon.inapp.purchasing.NOTIFY" android:permission = "com.amazon.inapp.purchasing.Permission.NOTIFY" />
</intent-filter>
</receiver>
【讨论】:
【参考方案2】:首先,如果您正在测试,请确保已安装 SDK Tester 应用,并且您已将amazon.sdktester.json
文件上传到您的设备或模拟器上的/mnt/sdcard/
(如here 所述)。
调用onSdkAvailable
回调不需要任何 IPC,因此它并不表示您正在与客户端或测试应用程序进行通信。
另外,请确保您已在清单中声明了接收方。来自the Amazon docs:
<receiver android:name="com.amazon.inapp.purchasing.ResponseReceiver" >
<intent-filter>
<action android:name="com.amazon.inapp.purchasing.NOTIFY"
android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY" />
</intent-filter>
</receiver>
(顺便说一句,<action>
标记上的android:permission
属性没有任何作用。但是,如果将其移至它所属的<receiver>
标记,您将再次接收不到广播-至少来自 SDK Tester 应用程序,也可能来自 IAP 客户端。您可以按照文档的建议保留它,或者直接删除android:permission
属性;请参阅this thread。)
【讨论】:
以上是关于Amazon IAP - 未调用 PurchaseObserver 回调(onSdkAvailable 除外)的主要内容,如果未能解决你的问题,请参考以下文章
Amazon IAP v2.0 不响应 android 实时测试
Xcode 12 In App Purchase Implementation - SKProductsRequestDelegate 没有被调用