我使用ButtonClicker示例作为基础框架将我们的游戏连接到亚马逊商店。我正在尝试实现店面,因此在onItemDataResponse
回调中构建可购买项目目录。但这与onGetUserIdResponse
一起永远不会被调用。但是sdk测试人员正在记录成功的项目数据响应BroadCasts和UserID响应BroadCasts并记录amazon.sdktester.json的内容。请注意onSdkAvailable
正在被调用....还有其他人经历过这个吗?如果是这样,你是如何解决它的?任何帮助或建议都会很棒。
谢谢克里斯
答案 0 :(得分:2)
我刚才遇到了你描述的同样的问题。 (我从采购经理那里得不到回调)
在我的清单中我有:
<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”属性,因为它删除了警告“导出的接收者不需要许可”
现在我的清单看起来像这样,在应用程序购买中可以使用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>
答案 1 :(得分:0)
首先,如果您正在测试,请确保已安装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>
(侧面注意,android:permission
标记上的<action>
属性没有执行任何操作。但是,如果将其移动到它所属的<receiver>
标记,则再次不会收到广播 - 至少来自SDK Tester应用程序,也可能来自IAP客户端。您可以将其保留为文档建议或只删除android:permission
属性;请参阅this thread。)