Java-код, чтобы заставить все устройства показывать тестовые объявления - PullRequest
3 голосов
/ 27 января 2012
AdManager.setTestDevices( new String[] { 
    AdManager.TEST_EMULATOR, // Android emulator 
    "E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone 
}

Я хотел раздать тестовое приложение для Android 5-10 моим друзьям.Некоторые из этих людей живут за 1000 миль, поэтому нет никакого способа «использовать DDMS» или «подключить свой телефон к моей машине для разработки».

Мне нужно, чтобы ВСЕГДА просто отображать AdMobтестовые объявления.

(в настоящее время он показывает РЕАЛЬНУЮ рекламу.)

Я не знаю (или не хочу знать) каждого "кода идентификации устройства".

Я не знаюЯ не хочу жестко кодировать каждую 1 в моем приложении.

(И все время добавлять все новые.)

Есть ли Java-код, который скажет: «Какое бы устройство ни использовало этоприложение, это тестовое устройство, так что просто отображать тестовую рекламу "?

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Может быть, вы можете попробовать добавить тестовое устройство на лету:

AdManager.addTestDevice(Settings.Secure.getString(context.getContentResolver(), "android_id"))); 
// or Settings.Secure.ANDROID_ID if no context available

(я не проверял этот код.)

Edit:

Декомпиляция библиотеки JAR AdMob дает:

AdRequest.java :

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 :

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;
  }

Код запутан, но мы ясно видим, что он проверяет Settings.Secure.ANDROID_ID на соответствие значениям, указанным в AdManager.addTestDevice.

0 голосов
/ 29 ноября 2014

Я полностью отключаю рекламную систему в тестовых сборках и включаю ее только для локальных отладочных сборок на устройствах, которыми я владею.Вместо рекламы вы можете показать статичное изображение, чтобы вы могли иметь тот же макет.

0 голосов
/ 31 января 2012

Попробуйте использовать метод AdRequest.setTestDevices.

AdRequest.setTestDevices( new String[] { 
    AdRequest.TEST_EMULATOR, // Android emulator 
   "E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone 
});

Скорее всего, вы просматриваете старую документацию AdMob до того, как Google AdMob SDK переписал.тестировать рекламу на всех устройствах.Это предупредительная мера, так что вы не можете случайно выпустить приложение, которое обслуживает всех тестовых объявлений для всех.

...