首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java代码强制所有设备显示测试广告

Java代码强制所有设备显示测试广告
EN

Stack Overflow用户
提问于 2012-01-27 04:05:31
回答 2查看 1.1K关注 0票数 3
代码语言:javascript
复制
AdManager.setTestDevices( new String[] { 
    AdManager.TEST_EMULATOR, // Android emulator 
    "E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone 
}

我想把我的Android测试应用程序给我的朋友中的5-10个。这些人中有几个住在1000英里外,所以没有办法“使用DDMS”或“把他们的手机连接到我的开发机器上”。

我需要它总是只显示AdMob测试广告。

(目前它正在播放真实的广告。)

我不知道(或者想知道)每个人的“设备ID代码”。

我不想把每个1都硬编码到我的应用程序中。

(并随时添加所有新的。)

是否有java代码会说:“不管这个应用程序是什么设备,都是测试设备,所以只要显示测试广告就行了”?

EN

回答 2

Stack Overflow用户

发布于 2012-01-27 07:58:57

也许你可以试着在飞行中添加测试设备:

代码语言:javascript
复制
AdManager.addTestDevice(Settings.Secure.getString(context.getContentResolver(), "android_id"))); 
// or Settings.Secure.ANDROID_ID if no context available

(我没有测试这个代码。)

编辑:

反编译AdMob JAR库提供:

AdRequest.java

代码语言:javascript
复制
public boolean isTestDevice(Context context)
  {
    if (this.i != null)
    {
      if ((
        context = AdUtil.a(context)) == null)
      {
        return false;
      }

      if (this.i.contains(context)) {
        return true;
      }
    }

    return false;
  }

看着AdUtil.a

代码语言:javascript
复制
public static String a(Context paramContext)
  {
    if (c == null)
    {
      if (((
        paramContext = Settings.Secure.getString(paramContext.getContentResolver(), "android_id")) == null) || 
        (c()))
        paramContext = a("emulator");
      else {
        paramContext = a(paramContext);
      }

      if (paramContext == null) {
        return null;
      }

      c = paramContext.toUpperCase(Locale.US);
    }

    return c;
  }

代码是模糊的,但是我们清楚地看到它是根据您在AdManager.addTestDevice中给出的值来测试AdManager.addTestDevice的。

票数 2
EN

Stack Overflow用户

发布于 2014-11-29 10:53:57

我在测试版本中完全禁用广告系统,并且只为我自己的设备上的本地调试版本启用它。你可以用静态图像代替广告,这样你仍然可以有相同的布局。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9028852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档