以编程方式设置测试模式时出现真实的Admob广告

时间:2012-07-17 17:09:25

标签: java android xml eclipse admob

这里有一个奇怪的问题:每当我通过xml设置测试模式时,我都会在模拟器中收到预期的测试广告。但是,当我尝试以编程方式执行相同操作时,我似乎得到了真正的广告。根据Admob文档,这两种方法应该是等价的,不是吗?这是我的xml代码:

 <com.google.ads.AdView
                    android:id="@+id/adView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    ads:adSize="BANNER"
                    ads:adUnitId="xxxxxxxxxxx"
                    ads:loadAdOnCreate="true">
    </com.google.ads.AdView>

这是相关的Java代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);

}

如前所述,如果我在上面的xml代码中插入行广告:testDevices =“TEST_EMULATOR,TEST_DEVICE_ID”,我就可以获得测试广告了。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我相信您必须在AdView对象上调用.loadAd(adRequest)。

See Google's AdMob documentation here

添加com.google.ads.AdView 部分。

答案 1 :(得分:1)

您无需以编程方式调用它。

我花了一段时间,直到我得到AdMob sdk的设备是什么期待cuz'我认为这是与真实设备相关的东西,如(adb设备)

但这是官方文件中的评论,清除了它。

“将会有一条日志消息,其中包含将当前设备添加到测试设备列表所需的代码”

您可能会收到类似的消息

I/Ads(26674): To get test ads on this device, call adRequest.addTestDevice("F1254CDFBA84BDC27F5C7C6E12445D06");

之后您需要做的就是将此ID放入布局xml中,如下所示

<com.google.ads.AdView
    android:layout_alignParentBottom="true"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="@string/publisherId"
    ads:loadAdOnCreate="true"
    ads:testDevices="TEST_EMULATOR, F1254CDFBA84BDC27F5C7C6E12445D06" />

希望它可以帮助你们

Paulo Miguel Almeida