我认为已正确执行了文档中的所有步骤,但是我无法到达querySkuDetailsAsync的回调,未报告任何错误。该应用程序可以在IAB上正常工作,现在我只是从旧库迁移到新的“ com.android.billingclient:billing:2.0.3”,但存在很多问题。 另一个问题,在新库中还需要使用Play控制台中的许可证密钥吗?我在新库中找不到有关使用它的文档。
我可以正确无误地到达此行billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
Sku ID正确
private void setupIab()
{
billingClient = BillingClient.newBuilder(getApplicationContext()).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener()
{
@Override
public void onBillingSetupFinished(BillingResult billingResult)
{
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK)
{
List<String> skuList = new ArrayList<> ();
skuList.add("test_sku_1");
SkuDetailsParams params = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
{
// Process the result.
if (billingResult2.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null)
{
}
});
}
}
@Override
public void onBillingServiceDisconnected()
{
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
}
最诚挚的问候
答案 0 :(得分:0)
该代码对我来说似乎是正确的,并且与我使用的代码相似,但是我没有在querySkuDetailsAsync
中调用onBillingSetupFinished
,仅当用户购买东西时才调用它。
也许onBillingSetupFinished
运行时,设置尚未真正完成,您可以尝试使用它,以便稍后使用:
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
new Handler().post(() -> {
List<String> skuList = new ArrayList<>();
skuList.add("test_sku_1");
SkuDetailsParams params = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
{
// Process the result.
if (billingResult2.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
}
});
});
}