gpt4 book ai didi

Android:应用内购买查询不返回任何产品(skuDetails)

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:26 25 4
gpt4 key购买 nike

我正在开发我的第一个 Android 应用程序。我真的从堆栈溢出中学到了很多东西。但是我目前的问题还没有找到解决方案。

我尝试实现“应用内购买”。我做了以下事情:

1) 在开发人员控制台中,我在 alpha 和 beta 测试中上传了一个签名的 apk。我还向该帐户添加了一个测试用户,并且我正在使用该帐户进行测试。此外,我添加了一些状态为 Activity 的“应用程序内产品(托管)”。

2) 如http://developer.android.com/training/in-app-billing/index.html所述我下载了必要的 lib 字段,从示例项目 TrivialDrive 中复制了代码,并遵循了导致编码的所有步骤:

// called when the app is started
public void setupConnectionToGooglePlay(final Context context) {
this.context = context;

mHelper = new IabHelper(context, base64EncodedPublicKey);

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Oh no, there was a problem. --> no error message shown to
// the user!
Toast.makeText(context, "No connection to google:" + result, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "connection to google:" + result, Toast.LENGTH_LONG).show();
// If connection is established:
get List of all in App Purchase products
getListOfInAppPurchaseProducts();
}
}
});
}

当执行这部分代码时,我得到的结果是,连接已成功建立。因此调用方法 getListOfInAppPurchaseProducts()。

private void getListOfInAppPurchaseProducts() {
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isFailure()) {
// no error message is shown to the user
Toast.makeText(context, "Query not successful", Toast.LENGTH_LONG).show();
} else {
String message = result.getMessage();
boolean isSuccess = result.isSuccess();
// no success message is shown to the user
List<String> skus = inventory.getAllOwnedSkus();
Map<String,SkuDetails> map = inventory.getSKUMap();
int size = map.size();

Toast.makeText(
context,
"Message: " + message + "Query successful. Mapsize:" + size, Toast.LENGTH_LONG).show();

WMGooglePlayConnection.this.inventory = inventory;

}
}
};

ArrayList<String> list = new ArrayList<String>();
list.add("test");
list.add("test2");
mHelper.queryInventoryAsync(true, list, mQueryFinishedListener);
}

很遗憾,返回的库存不包含任何 SKU 详细信息(即使查询成功)。我检查了以下内容:

  • productIds
  • 产品 ID 的状态(有效)
  • base64EncodedPublicKey

为了测试,我使用了真实设备(Samsung ACE 2)。我将 apk 文件直接复制到设备上(不是从 google play 下载的)。这会是个问题吗?

是否可以通过模拟器获取 SKU 详细信息?

你知道我可以检查什么吗?

如果有人能帮助我,那就太好了......

最佳答案

我也遇到了这个问题。当 Google Play 服务 4.4 推出时,我们的应用内结算功能就崩溃了。我想一两周前。

要立即显示您的应用内结算产品,您必须发布您的 Alpha 版本,但只对您的测试人员列表/组中的人员可见。

应用发布后,测试人员可以使用类似于此的链接从 Google Play 商店下载它。

https://play.google.com/apps/testing/

希望对您有所帮助。

关于Android:应用内购买查询不返回任何产品(skuDetails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com