Android IabHelper.QueryInventoryFinishedListener

Я проверяю, была ли сделана покупка в приложении или нет. Если покупка была сделана, я хочу открыть ActivityB, если это не было сделано, я хочу Apiro InAppBillingActivity. Но когда я вызываю метод Controlla_record_per_acquisto(), ничего не происходит. Я не понимаю, где проблема. спасибо за помощь

В onCreate()

String base64EncodedPublicKey =".........."; 
 m1Helper = new IabHelper(getActivity(), base64EncodedPublicKey);

 m1Helper.enableDebugLogging(true);

 m1Helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
 public void onIabSetupFinished(IabResult result) {

 if (!result.isSuccess()) {
 return;
 }

 if (m1Helper == null) return;
 List<string> st = new ArrayList<string>();
 st.add(ITEM_SKU); 
 ****************************** mGotInventoryListener = null;
 m1Helper.*******************(true,st, mGotInventoryListener);
 }
 });
</string></string>

и Метод:

private void Controlla_record_per_acquisto(){
 SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
 String controllo = "SELECT COUNT(_id) FROM table";
 Cursor c = db.rawQuery(controllo, null);

 while (c.moveToNext()){
 int numero_id = c.getInt(0); 

 if(numero_id >=1){ 

 IabHelper.****************************** mGotInventoryListener = new IabHelper.******************************() {
 public void ************************(IabResult result, Inventory inventory) {

 if (m1Helper == null) return;

 if (result.isFailure()) {
 return;
 }

 if(inventory.hasPurchase(ITEM_SKU)) {
 Intent intent = null;
 intent = new Intent(getActivity(), ActivityB.class); 
 startActivity(intent);
 }
 }
 };

 }else { 
 Intent intent = null;
 intent = new Intent(getActivity(), InAppBillingActivity.class); 
 startActivity(intent);
 }
 c.close();
 db.close();
 }
}
1 ответ

Я думаю, вы не можете просто назвать "свой метод", потому что это не так, как работает inappbilling.

Чтобы активировать процесс inappbilling и слушателей, вам необходимо позвонить:

m1Helper.launchPurchaseFlow (это, ITEM_SKU, 10001, mPurchaseFinishedListener, "mypurchasetoken");

Посмотри на это:

http://www.techotopia.com/index.php/Integrating_Google_Play_In-app_Billing_into_an_Android_Application_%E2%80%93_A_Tutorial

licensed under cc by-sa 3.0 with attribution.