0

ユーザーがアプリ内課金で購入したアイテムを購入するためのボタンをアプリから削除するにはどうすればよいか考えていました。共有設定を使用できますが、どうすればそれを行うことができますか。これは私が使用したチュートリアルです: http://www.anddev.org/advanced-tutorials-f21/simple-inapp-billing-payment-t52060.html .

ありがとう

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);



    };     
};
4

2 に答える 2

3

Dungeons の例に従った場合、おそらく ResponsHandler/PurchaseObserver を実装していますか?

コードのどこかに、このように PurchaseObserver を登録しました

ResponseHandler.register(purchaseObserver); 

purchaseObserver では、呼び出されたメソッドをオーバーライドします

public void onPurchaseStateChange(...)

共有設定を使用すると、そのメソッドでアプリの状態を追跡できます。キャンセル/払い戻しを処理することが重要です。そうでない場合は、自分のものを無料で配っていることになります。コードは次のようになります

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();
于 2011-12-20T06:10:58.663 に答える
0

SharedPreferences を使用して、購入したアイテムを永続化できます。次に、InAppActivity の onCreate() 内で、次のようにします。

if(settings.getBoolean("isAwesomeItemBought") {
   buyButton.setVisibility(View.GONE);
   buyText.setVisibility(View.VISIBLE);
}
于 2011-12-20T06:15:11.553 に答える