Android Проверьте, не нажат ли баннер - PullRequest
1 голос
/ 18 октября 2011

Я пытаюсь найти способ проверить, проверяется ли баннер (реклама), но его сложнее шить.

Я пытался

adView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //TODO
        }
    });

Но это не работает (я поставил отладочную печать, но это не сработало ..)

Затем я попытался создать LinearLayout, который оборачивает adView и поместил слушателя в линейный макет, но он все еще не работал.

Затем я попытался создать более крупный макет, который содержал весь дисплей, и добавил в него adView. Я подумал добавить в него onTouchListener и проверить координаты, чтобы проверить, была ли нажата кнопка добавления. Но я не совсем понимаю, как найти правильные координаты моего баннера (я создал метод, который проверяет смещение по осям x и y и силу тяжести, чтобы использовать этот баннер), и я действительно надеюсь, что существует лучший способ , Кроме того, я обнаружил, что метод не выполняется, если я нажимаю на баннер, а только если нажимаются другие части экрана.

Итак, есть ли способ узнать это? Мне не важно знать, была ли загружена страница баннера или она перенаправлена ​​на рынок или в браузер, мне просто нужно знать, был ли нажат баннер.

Может быть, установить проверку, которая запускается при прикосновении к экрану, а затем проверить, был ли запущен метод listner, и, если он не был запущен, можно ли коснуться баннера, но я не знаю, как его реализовать ..

Есть идеи, как это сделать?

Спасибо

Ответы [ 4 ]

1 голос
/ 16 сентября 2014

Для тех, кто еще не знает, как:

Используется AdListener

adView.setAdListener(new AdListener() {
            public void onDismissScreen(Ad arg0) {
               Toast.makeText(BannerAdListener.this, "Back to app", Toast.LENGTH_SHORT).show();
            }

            public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
               Toast.makeText(BannerAdListener.this, "Error loading", Toast.LENGTH_SHORT).show();

            }

            public void onLeaveApplication(Ad arg0) {
               Toast.makeText(BannerAdListener.this, "Left app", Toast.LENGTH_SHORT).show();

            }

            public void onPresentScreen(Ad arg0) {
               Toast.makeText(BannerAdListener.this, "Sumthin sumthin", Toast.LENGTH_SHORT).show();

            }

            public void onReceiveAd(Ad arg0) {
               Toast.makeText(BannerAdListener.this, "Ad Received", Toast.LENGTH_SHORT).show();

            }
            });
1 голос
/ 19 октября 2011

Не знаю, почему другие люди не говорили о том, какой adView вы используете?Большинство (как и все, что я знаю) предоставляют слушателя, которого вы можете предоставить, который имеет обратный вызов, когда нажимается реклама.

Например, у MobFox setBannerListener(BannerListener listener), а у этого слушателя есть метод adClicked().Другие провайдеры (например, admob, inmobi, mopub) имеют похожих слушателей, которых вы можете установить.

Это должен быть способ справиться с этим, а не взламывать контейнер.

0 голосов
/ 18 октября 2011

Хорошо, я решил, и так как я потерял немало времени, чтобы найти решение, я публикую его здесь, чтобы каждый мог найти и использовать его!

LinearLayout containAdView = null;

    if(registerTouch)
    {
            containAdView = new LinearLayout(pActivity){

            public boolean onInterceptTouchEvent(MotionEvent ev)
            {
                if(ev.getAction() == MotionEvent.ACTION_UP)
                {
                    bannerClicked(pActivity, shared_Prefs_name, shared_Save_name);

                    if(mainMenu.ISDEV)
                    {
                        final Toast tost = Toast.makeText(pActivity, "Banner Clicked", Toast.LENGTH_SHORT);
                        tost.show();
                    }
                }

                return super.onInterceptTouchEvent(ev);
            }
        };
        containAdView.addView(adView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
    }
0 голосов
/ 18 октября 2011

Вы пытались вставить тост в событие клика?

Приложение компилируется и запускается?

У вас есть дубликаты идентификаторов?

...