Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 购买后的应用内计费_Android_Billing_In App - Fatal编程技术网

Android 购买后的应用内计费

Android 购买后的应用内计费,android,billing,in-app,Android,Billing,In App,我想知道如何让我的应用程序删除用户在应用程序内账单中购买的物品的按钮。我可以使用SharedReferences,但我该怎么做呢。这是我使用的教程: 谢谢 public Handler mTransactionHandler = new Handler(){ public void handleMessage(android.os.Message msg) { Log.i(TAG, "Transaction complete"); Log.

我想知道如何让我的应用程序删除用户在应用程序内账单中购买的物品的按钮。我可以使用SharedReferences,但我该怎么做呢。这是我使用的教程:

谢谢

public Handler mTransactionHandler = new Handler(){
    public void handleMessage(android.os.Message msg) {
            Log.i(TAG, "Transaction complete");
            Log.i(TAG, "Transaction status: "+BillingHelper.latestPurchase.purchaseState);
            Log.i(TAG, "Item attempted purchase is: "+BillingHelper.latestPurchase.productId);



    };     
};

如果你遵循地下城的例子,你可能已经实现了一个ResponseHandler/PurchaseObserver

在代码中的某个地方,您已经注册了这样一个PurchaseObserver

ResponseHandler.register(purchaseObserver); 
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor e = p.edit();
if (purchaseState == Consts.PurchaseState.CANCELED 
         || purchaseState ==   Consts.PurchaseState.REFUNDED) {
      e.putBoolean("PURCHASED", false);
} else if (purchaseState == Consts.PurchaseState.PURCHASED) {
      e.putBoolean("PURCHASED", true);
}
e.commit();
在purchaseObserver中,重写调用

public void onPurchaseStateChange(...)
通过使用共享首选项,您可以通过该方法跟踪应用程序的状态。处理取消/退款很重要。如果不是,你就免费赠送你的东西。代码可能如下所示

ResponseHandler.register(purchaseObserver); 
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor e = p.edit();
if (purchaseState == Consts.PurchaseState.CANCELED 
         || purchaseState ==   Consts.PurchaseState.REFUNDED) {
      e.putBoolean("PURCHASED", false);
} else if (purchaseState == Consts.PurchaseState.PURCHASED) {
      e.putBoolean("PURCHASED", true);
}
e.commit();

如果你遵循地下城的例子,你可能已经实现了一个ResponseHandler/PurchaseObserver

在代码中的某个地方,您已经注册了这样一个PurchaseObserver

ResponseHandler.register(purchaseObserver); 
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor e = p.edit();
if (purchaseState == Consts.PurchaseState.CANCELED 
         || purchaseState ==   Consts.PurchaseState.REFUNDED) {
      e.putBoolean("PURCHASED", false);
} else if (purchaseState == Consts.PurchaseState.PURCHASED) {
      e.putBoolean("PURCHASED", true);
}
e.commit();
在purchaseObserver中,重写调用

public void onPurchaseStateChange(...)
通过使用共享首选项,您可以通过该方法跟踪应用程序的状态。处理取消/退款很重要。如果不是,你就免费赠送你的东西。代码可能如下所示

ResponseHandler.register(purchaseObserver); 
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor e = p.edit();
if (purchaseState == Consts.PurchaseState.CANCELED 
         || purchaseState ==   Consts.PurchaseState.REFUNDED) {
      e.putBoolean("PURCHASED", false);
} else if (purchaseState == Consts.PurchaseState.PURCHASED) {
      e.putBoolean("PURCHASED", true);
}
e.commit();

您可以使用SharedReferences来保存购买的项目。然后在您的InAppActivity的onCreate()中,执行以下操作:

if(settings.getBoolean("isAwesomeItemBought") {
   buyButton.setVisibility(View.GONE);
   buyText.setVisibility(View.VISIBLE);
}

您可以使用SharedReferences来保存购买的项目。然后在您的InAppActivity的onCreate()中,执行以下操作:

if(settings.getBoolean("isAwesomeItemBought") {
   buyButton.setVisibility(View.GONE);
   buyText.setVisibility(View.VISIBLE);
}

这可能是一个愚蠢的问题,但购买状态会是什么?我正在使用Blundell提供的教程。在遵循Blundell教程时,更新首选项的代码似乎应该放在mTransactionHandler内部类中。购买状态为已购买(用户已为订单付费)、已取消(服务器上的收费失败)和已退款(您已退款)。在blundell代码中,“purchaseState”代表什么?您能否查看我上面的代码,并告诉我您在代码中说了什么?我猜应该是在那个区域。这可能是个愚蠢的问题,但采购状态会是什么呢?我正在使用Blundell提供的教程。在遵循Blundell教程时,更新首选项的代码似乎应该放在mTransactionHandler内部类中。购买状态为已购买(用户已为订单付费)、已取消(服务器上的收费失败)和已退款(您已退款)。在blundell代码中,“purchaseState”代表什么?您能否查看我上面的代码,并告诉我您在代码中说了什么?我猜它会在那个地区。