首先,我不知道您是否在代码中解决了在模拟器中与在真实设备上的差异问题。您需要区分您的应用程序是在模拟器还是真实设备上运行,这可以通过以下方式完成
boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
如果您在模拟器中,这将返回 true,如果不在模拟器中,则返回 false。接下来,您需要根据 inEmulotor 的值构建一种处理广告的方法
if (inEmulator)
{
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
}
else
{
adRequest.addTestDevice("11111111101111111110111111111011");
}
在这里我们要么必须添加一个仿真器测试设备,要么你需要一个真实设备的 32char 设备 ID。(这个 ID 是字母数字的)这个真实设备的 ID 可以通过在真实设备上运行 admob 来找到,并会出现在 logcat 中。
最后,您需要设置 testing = true 并开始加载广告。
adRequest.setTesting(true);
adView.loadAd(adRequest);
总而言之,此代码的工作集可能如下所示:
boolean isTestingAds = true; //this is a switch, to make it easy on changing modes
boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
AdView adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
AdRequest adRequest = new AdRequest();
if (isTestingAds)
{
if (inEmulator)
{
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
}
else
{
adRequest.addTestDevice("11111111101111111110111111111011");
}
adRequest.setTesting(true);
}
adView.loadAd(adRequest);
不要忘记将广告视图添加到您的内容视图,以及更新清单文件。MY_AD_UNIT_ID 是您从 admob 获得的用于此特定应用的代码。
所以最后找到你的ID,设置
isTestingAds = false;
然后您需要将设备设置为测试的 # 将出现在 LogCat 中。
如果您没有从您的真实设备获取和记录数据,那么这完全是另一个问题。