Биллинг в приложении после покупки - PullRequest
0 голосов
/ 20 декабря 2011

Мне было интересно, как я смогу заставить мое приложение убирать кнопки для покупки предмета, который пользователь приобрел в биллинге внутри приложения. Я мог бы использовать 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);



    };     
};

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

Если вы следовали примеру с Dungeons, вы, вероятно, реализовали ResponsHandler / PurchaseObserver?

Где-то в вашем коде вы зарегистрировали BuyObserver, как этот

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();
0 голосов
/ 20 декабря 2011

Вы можете использовать SharedPreferences для сохранения купленных предметов.Затем внутри onCreate () вашей InAppActivity сделайте следующее:

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