【问题标题】:Admob Adaptive banner For Android 11 (SDK Version 30)适用于 Android 11 的 Admob 自适应横幅(SDK 版本 30)
【发布时间】:2020-07-21 10:57:50
【问题描述】:

getwindowmanager().getdefaultdisplay()display.getMetrics 已弃用

使用此代码,适用于 Android 11,

private AdSize getAdSize() {
   DisplayMetrics outMetrics = this.getResources().getDisplayMetrics();
 }

如果目标 sdk 设置为 29,它运行良好并显示广告。 但是,如果将 target sdk 改为 30,则不会显示任何广告。

targetSdkVersion 为 30 时,广告加载失败,错误代码为 0。

【问题讨论】:

  • 你找到解决办法了吗?
  • 我有同样的问题,自适应横幅广告在 API30 上不起作用。有什么解决办法吗?

标签: android admob


【解决方案1】:

你可以试试这个吗?它应该在文档本身中给出与代码 sn-p 相同的输出

    private AdSize getAdSize() {

    DisplayMetrics outMetrics = getResources().getDisplayMetrics();

    float widthPixels = getScreenWidth();
    float density = outMetrics.density;

    int adWidth = (int) (widthPixels / density);

    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);

}

public int getScreenWidth() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        WindowMetrics windowMetrics = getWindowManager().getCurrentWindowMetrics();
        Insets insets = windowMetrics.getWindowInsets()
                .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars());
        return windowMetrics.getBounds().width() - insets.left - insets.right;
    } else {
        DisplayMetrics outMetrics = getResources().getDisplayMetrics();
        return outMetrics.widthPixels;
    }
}

【讨论】:

    【解决方案2】:

    更新 Admob 并运行它。

    Admob 发行说明说,Admob 不支持 Android 11。从版本 19.4.0 开始,它们支持 Android 11。

    https://developers.google.com/admob/android/rel-notes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多