psy*_*khi 110 android in-app-billing
我目前正在为未来的应用程序测试In-App Billing,并且在我第一次成功"购买"测试项目"android.test.purchased"后,我现在每次尝试再次购买时都会收到响应代码7,这意味着我已经拥有了这个项目.
12-15 23:02:14.149:E/IabHelper(19829):应用内结算错误:无法购买商品,错误回复:7:商品已经拥有
根据我的理解,这次购买应该永远是可能的,对吧?那么开发人员可以测试他/她的应用程序?
如果没有,我如何"重置"其状态为不拥有?我正在使用Google In-App Billing Sample中的util包.
Aas*_*rma 108
将此代码添加到线程以启动使用请求.
int response = mService.consumePurchase(3, getPackageName(), purchaseToken);
Run Code Online (Sandbox Code Playgroud)
这里为购买测试,buyToken是
purchaseToken = "inapp:" + getPackageName() + ":android.test.purchased";
Run Code Online (Sandbox Code Playgroud)
和
if (response == 0)
Run Code Online (Sandbox Code Playgroud)
然后消费成功.
mtt*_*lns 83
无需编写任何特殊的消费代码.只需使用adb命令清除Google Play商店数据:
adb shell pm clear com.android.vending
Run Code Online (Sandbox Code Playgroud)
psy*_*khi 62
事实证明,android.test.purchased项的行为类似于常规ID.这意味着如果您希望能够再次购买它,则必须在代码中的某处使用它.我认为Google文档在此问题上存在误导性,并且他们应该添加另一个静态ID,您可以无休止地购买这些ID用于测试目的.
emb*_*mbo 28
应用内版本3:
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
.....................
if (inventory.hasPurchase(SKU_CONTENT)) {
mHelper.consumeAsync(inventory.getPurchase(SKU_CONTENT), null);
}
}
};
Run Code Online (Sandbox Code Playgroud)
Den*_*nis 10
版本3:清除Google Play商店的缓存会让"android.test.purchased"再次可用.
这就是我们如何使用Item
consume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
String purchaseToken = "inapp:" + getPackageName() + ":android.test.purchased";
try {
Log.d("","Running");
int response = mService.consumePurchase(3, getPackageName(), purchaseToken);
if(response==0)
{
Log.d("Consumed","Consumed");
}else {
Log.d("","No"+response);
}
}catch (RemoteException e)
{
Log.d("Errorr",""+e);
}
}
});
t.start();
}
});
Run Code Online (Sandbox Code Playgroud)
在我看来,如果您的程序不是为了消耗该项而设计的,则不需要调整代码以清除外部供应商的内存.这将使您的代码更加脆弱,然后您将花费大量时间来添加和删除不属于您的软件的代码,因此实现这样的解决方案是一个糟糕的设计.
清除android.test.purchased的最佳解决方案是
adb uninstall com.yourapp.name
Run Code Online (Sandbox Code Playgroud)
然后
adb shell pm clear com.android.vending
Run Code Online (Sandbox Code Playgroud)
我不需要清理现金并浏览我的应用程序设置或更改代码.我确实需要将adb添加到windows系统的路径变量中,这非常简单.所以是的,你需要使用你可能需要的adb,所以...
你只需添加你的C:\ ...\android-sdk\platform-tools; 在环境变量的windows路径中,我想在mac和linux os中也很简单.希望它可以帮助别人花几天时间在app appings中实现android.
| 归档时间: |
|
| 查看次数: |
57064 次 |
| 最近记录: |