2017-10-05 70 views
0

我已经在应用程序中与“应用内结算购买”集成,但是我有几个活动需要复制所有代码。如何在类中留下应用内结算购买

所以我想着把所有的东西都集中在一个单独的课堂上,我在课堂上做了wastancio,如果这个东西被买了,我就到了。

只是,我有一个很大的问题“的应用内计费购买”使用监听器OnIabPurchaseFinishedListenerQueryInventoryFinishedListener

我怎么能离开这一切都在一个类组织,只是一个简单的调用来检查我的活动?

调用代码:

Billing bl = new Billing(getActivity().getApplicationContext()); 
if (bl.Comprado()) 
    Toast.makeText(getActivity(), "Comprado", Toast.LENGTH_SHORT).show(); 
else 
    Toast.makeText(getActivity(), "Erro comprado", Toast.LENGTH_SHORT).show(); 

类我创建了被称为多次

public class Billing { 
// Item name for premium status 
private static final String SKU_PREMIUM = "premium"; 
// private static final String SKU_PREMIUM = "tirarbanner"; 
// Flag set to true when we have premium status 
private static boolean mIsPremium = false; 
// In-app Billing helper 
private IabHelper mAbHelper; 

public Billing(Context context) { 

    String base64EncodedPublicKey = "xxx"; 
    // Create in-app billing helper 
    mAbHelper = new IabHelper(context, base64EncodedPublicKey); 
    // and start setup. If setup is successfull, query inventory we already 
    // own 
    mAbHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
     public void onIabSetupFinished(IabResult result) { 

      if (!result.isSuccess()) { 
       return; 
      } 
      mAbHelper.queryInventoryAsync(mGotInventoryListener); 
     } 
    }); 
} 

public static boolean Comprado() { 
    return mIsPremium; 
} 

/** 
* Listener that is called when we finish purchase flow. 
*/ 
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) { 

     if (result.isFailure()) { 
      return; 
     } 
     // Purchase was successfull, set premium flag and update interface 
     if (purchase.getSku().equals(SKU_PREMIUM)) { 
      mIsPremium = true; 
     } 
    } 
}; 

/** 
* Listener that's called when we finish querying the items and 
* subscriptions we own 
*/ 
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 

     // Have we been disposed of in the meantime? If so, quit. 
     if (mAbHelper == null) 
      return; 

     // Is it a failure? 
     if (result.isFailure()) { 
      return; 
     } 

     // Do we have the premium upgrade? 
     Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM); 
     mIsPremium = premiumPurchase != null; 

    } 
}; 

}

回答

0

目前已经是一个库这一点。

检查android-inapp-billing-v3.

+0

但我已经使用这个库正是我需要的,而是使用相同的代码在我的课集中一切 – Will