【问题标题】:How to disable admob in libgdx如何在 libgdx 中禁用 admob
【发布时间】:2014-03-09 13:54:33
【问题描述】:

我将 admob 添加到我的 libgdx 项目中没有任何问题,但是如何在游戏中禁用 admob。我有 2 个屏幕(MainMenu 和 PlayScreen),我希望广告仅在 MainMenu 上显示。

我找到了一篇关于在 libgdx 中控制广告的文章,但问题是这篇文章是针对桌面而非 Android 的。

https://code.google.com/p/libgdx/wiki/AdMobInLibgdx(注意:问题的部分原因是使用了已弃用的文档,更新版本可在https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx获得)

【问题讨论】:

  • 本文适用于所有实现!它实际上是平台之间的接口,你需要知道的一切都在那里。它甚至向您展示了如何在 android 中设置 admob 以及如何在核心项目中调用它。阅读文章,您可以做到。此外,如果有立场,我们将 wiki 移动到 git,您可能应该查看新 wiki 而不是旧 wiki。 -1 不阅读文章
  • @BennX - 请在评论或答案中提供您对较新文档的解决方案,而不是通过编辑问题。是的,发帖人应该关注新链接,但显然他们没有这样做是问题的基础——因此编辑问题以更改他们找到的文档,而不是取消所提出的问题。跨度>
  • @ChrisStratton 很抱歉并添加了新 wiki 的链接
  • 您的意图是好的,让我们看看这种方式是否保留了问题,同时不会导致未来的读者意外访问旧版本,因为您可能希望防止这种情况发生。

标签: android libgdx admob


【解决方案1】:

看看#control at the new wikiAndroid 项目中有 2 个最终静态值:

public class HelloWorldAndroid extends AndroidApplication {

private final int SHOW_ADS = 1;
private final int HIDE_ADS = 0;

protected Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg) {
        switch(msg.what) {
            case SHOW_ADS:
            {
                adView.setVisibility(View.VISIBLE); //change to visible
                break;
            }
            case HIDE_ADS:
            {
                adView.setVisibility(View.GONE);//change to not visible
                // you should also disable the ad fetching here!
                break;
            }
        }
    }
};

所以如果你调用方法:(被解析为核心项目的接口)

public interface IActivityRequestHandler {
   public void showAds(boolean show);
}

public class HelloWorldAndroid extends AndroidApplication implements IActivityRequestHandler  {

...

    // This is the callback that posts a message for the handler
    @Override
    public void showAds(boolean show) {
       handler.sendEmptyMessage(show ? SHOW_ADS : HIDE_ADS);
    }

它向激活或禁用 admob 的处理程序发送消息。 showAds 的接口被传递给核心项目,因此您可以持有对它的引用并使用它。要了解它是如何工作的,请查看接口plattformspec code 的文章。

在这里展示一下:

View gameView = initializeForView(new HelloWorld(this), false); // and "this" is the mainclass of the android project which implements the IActivityRequestHandler interface shown above
//the HelloWorld(this) is the core project where you now can save the `IActivityRequestHandler` as referance and call the showAds(bool)

但最后,如果你读了这篇文章,你应该知道这一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    相关资源
    最近更新 更多