Java代码强制所有设备显示测试广告
AdManager.setTestDevices(new String[] {
AdManager.TEST_EMULATOR, // Android emulator
"E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone
}
我想给我的测试Android应用程序出5-10我的朋友。 这些人中有几个人生活在1000英里以外,所以没有办法“使用DDMS”或“将手机挂在我的开发机器上”。Java代码强制所有设备显示测试广告
我需要它到总是只显示AdMob测试广告。
(它是当前显示内容的广告。)
我不知道(或想知道的)每个人的“设备ID码”。
我不想将每个1硬编码到我的应用程序。
(并添加所有新的所有的时间。)
有Java代码会说:“任何设备使用这个应用程序,是一个试验装置,所以只显示测试广告”?
也许你可以尝试在飞行中添加的测试设备:
AdManager.addTestDevice(Settings.Secure.getString(context.getContentResolver(), "android_id")));
// or Settings.Secure.ANDROID_ID if no context available
(我没有测试此代码。)
编辑:
反编译的AdMob JAR库提供了:
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;
}
代码进行模糊处理,但我们清楚地看到,这是对你在AdManager.addTestDevice
给了值(一个或多个)测试Settings.Secure.ANDROID_ID
。
尝试使用AdRequest.setTestDevices
方法。
AdRequest.setTestDevices(new String[] {
AdRequest.TEST_EMULATOR, // Android emulator
"E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone
});
您可能会在Google AdMob SDK重写之前查看旧的AdMob文档。
没有办法说你想在所有设备上测试广告。这是一项预防措施,以便您不会意外地向所有人发布为所有测试广告提供服务的应用。
那么,我如何从20个不同的测试设备获得所有这些“神奇数字”......距离这里1000英里的许多“魔术数字”? (单个beta测试人员永远不会想要安装eclipse,SDK和java,并且设置一个完整的开发人员环境来获取这个1号码。) – Carol 2012-02-06 20:44:23
我知道如何让他们安装一个应用程序吐出日志。我使用'aLogcat'。如果他们安装该应用并将其投入到您的应用中,然后进入您的广告请求活动,他们可以重新进入一个Logcat,并在日志中找到类似如下内容的行:“要在此设备上获得测试广告,请致电AdRequest。 addTestDevice( “E83D20734F72FB3108F104ABC0FFC738”);' – 2012-02-07 00:27:03
我在测试版本中完全禁用了广告系统,并且仅在本地设备上启用本地调试版本。 您可以显示静态图片来代替广告,这样您仍然可以拥有相同的布局。
我会试试看。但是,AdMob需要“设备ID”还是“加密的设备ID?” – Carol 2012-01-27 08:05:15
我编辑了我的答案。 – OcuS 2012-01-27 08:16:34
上下文方法返回一个长的字母/数字字符串。 Settings.Secure.ANDROID_ID只是返回“android_id”本身。 1都不是addTestDevice工作所需的“设备ID”。 – Carol 2012-01-27 18:24:18