嘗試使用界面,我已經做了這樣的:
適配器創建界面:
public interface IABHelperProvider {
public IabHelper getHelper();
}
然後實現它向主要活動和重寫方法getHelper()方法:
@Override
public IabHelper getHelper() {
// TODO Auto-generated method stub
return mHelper;
}
並稱之爲適配器
mHelper = ((IABHelperProvider)getActivity()).getHelper();
這將啓動購買流程
mHelper.launchPurchaseFlow(yourcontext, id, 10001,
mPurchaseFinishedListener, "sometext");
這裏是我的mPurchaseFinishedListener
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
= new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result,
Purchase purchase)
{
if (result.isFailure()) {
Toast.makeText(getActivity(), "Error", Toast.LENGTH_SHORT).show();
return;
}
else if (purchase.getSku().equals(ITEM_SKU)) {
consumeItem();
mBuyButton.setEnabled(false);
}
}
};
對於最終消費使用解鎖同一項目下一步的採購項目:
public void consumeItem() {
mHelper.queryInventoryAsync(mReceivedInventoryListener);
}
private IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
= new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result,
Inventory inventory) {
if (result.isFailure()) {
// Handle failure
} else {
mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
mConsumeFinishedListener);
if(inventory.hasPurchase(mBook.getAppStoreProductId())){
}
}
}
};
我會用單在應用程序擴展類 –