2011-12-20 17 views
0

アプリで、アプリ内課金で購入したアイテムを購入するためのボタンを削除する方法を知りました。私はsharedpreferencesを使うことができましたが、どうやってそれをやっていくのですか?これは私が使ったチュートリアルです: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); 



    };  
}; 

答えて

3

あなたは地下牢の例に従った場合、あなたはおそらくResponsHandler/PurchaseObserverを実装していますか?あなたのコードのどこかで

は、あなたは、あなたが状態を追跡することができ、共有環境設定を使用することにより

public void onPurchaseStateChange(...) 

というメソッドをオーバーライドしpurchaseObserverでこの

ResponseHandler.register(purchaseObserver); 

よう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(); 
+0

これはおそらくばかげた質問ですが、purchaseStateは何ですか? Blundellが提供しているチュートリアルを使用しています。 http://www.anddev.org/advanced-tutorials-f21/simple-inapp-billing-payment-t52060.html –

+1

Blundellのチュートリアルに従うと、あなたのコードがmTransactionHandlerの内部クラス。購入状態は購入済み(ユーザーは注文に対して請求されました)、キャンセル済み(サーバーで請求ができませんでした)、返金済み(購入品を払い戻しました)です。 –

+0

blundellコードでは、 "purchaseState"は何を表しますか? –

0

購入したアイテムを永続化するためにSharedPreferencesを使用できます。次に、InAppActivityのonCreate()の内部で、これを実行します。

if(settings.getBoolean("isAwesomeItemBought") { 
    buyButton.setVisibility(View.GONE); 
    buyText.setVisibility(View.VISIBLE); 
} 
関連する問題