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代码会说“无论什么设备正在使用此应用,是测试设备,所以只显示测试广告”?
答案 0 :(得分:2)
也许您可以尝试即时添加测试设备:
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;
}
代码被混淆但我们清楚地看到它正在针对您在Settings.Secure.ANDROID_ID
中提供的值进行AdManager.addTestDevice
测试。
答案 1 :(得分:0)
尝试使用AdRequest.setTestDevices
方法。
AdRequest.setTestDevices( new String[] {
AdRequest.TEST_EMULATOR, // Android emulator
"E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone
});
您可能会在Google AdMob SDK重写之前查看旧的AdMob文档。
无法说您想在所有设备上投放测试广告。这是一项预防措施,因此您不会意外地向所有人发布向所有测试广告投放的应用。
答案 2 :(得分:0)
我在测试版本中完全禁用广告系统,并且仅在我拥有的设备上启用本地调试版本。 您可以显示静态图像来代替广告,这样您仍然可以使用相同的布局。