我正在我的应用中实施Google应用内购买。我从Google端下载了代码并在我的应用中运行它。我第一次收到“签名验证失败”的错误我通过在发布版本中构建我的应用程序,签名并在谷歌Android市场上将其作为未发布的应用程序发布来解决它。现在在那个圣人购买应用程序并按下接受按钮并购买它时,我收到了回复,但数据未存储在onPurchseState中。再次应用程序给出下载此应用程序,你必须购买它。任何帮助将不胜感激。这是详细代码
我正在从onClick方法调用requestPurchase(String productId,String payload)。
@Override
public void onClick(View view) {
if(view == requestPurchaseButton) {
mBillingService.requestPurchase("android.test.purchased", "10");
}
}
调用onRequestPurchaseResponse(Request,ResponseCode)的回调方法。这里的responseCode给出值RESULT_OK。因此请求已发送到服务器。
@Override
public void onRequestPurchaseResponse(RequestPurchase request,
ResponseCode responseCode)
{
if(responseCode == ResponseCode.RESULT_OK) {
Log.d("My APP", "onRequestPurchaseResponse.ResponeCode.RESULT_OK");
} else if(responseCode == ResponseCode.RESULT_USER_CANCELED) {
} else {
}
}
但是回调方法
@Override
public void onPurchaseStateChange(PurchaseState purchaseState,
String itemId, int quantity, long purchaseTime,
String developerPayload) {
Log.d("PucrchedState", "onPurchaseStateChanged");
}
永远不会打电话给。
答案 0 :(得分:1)
onPurchaseStateChange()
是异步调用的,可能需要一些时间(通常在几秒钟内)。但是,如果您的设备位于防火墙后面,响应可能会丢失或延迟,请确保没有任何内容阻止传入连接(检查Google Talk是否正常工作)。还要确保您已在清单中注册了相应的BroadcastReceiver
。