要在Android应用中使用AdMob广告,需要为发布版本和测试版本分别配置不同的AdMob ID。下面是一个解决该问题的示例代码:
首先,创建一个名为Constants.java
的新Java类,用于存储AdMob ID和其他常量:
public class Constants {
public static final String ADMOB_APP_ID = "YOUR_ADMOB_APP_ID";
public static final String ADMOB_AD_UNIT_ID = "YOUR_ADMOB_AD_UNIT_ID";
public static final String TEST_ADMOB_AD_UNIT_ID = "YOUR_TEST_ADMOB_AD_UNIT_ID";
}
在YOUR_ADMOB_APP_ID
、YOUR_ADMOB_AD_UNIT_ID
和YOUR_TEST_ADMOB_AD_UNIT_ID
处分别替换为你的AdMob应用ID、发布广告单元ID和测试广告单元ID。
接下来,在你的活动(Activity)中使用AdMob广告之前,你可以使用以下代码检查应用是否处于发布模式:
private boolean isReleaseBuild() {
return (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0;
}
然后,在你的活动中根据应用模式加载相应的AdMob ID:
MobileAds.initialize(this, Constants.ADMOB_APP_ID);
AdView adView = findViewById(R.id.adView);
AdRequest adRequest;
if (isReleaseBuild()) {
adRequest = new AdRequest.Builder().build();
adView.setAdUnitId(Constants.ADMOB_AD_UNIT_ID);
} else {
adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("YOUR_TEST_DEVICE_ID")
.build();
adView.setAdUnitId(Constants.TEST_ADMOB_AD_UNIT_ID);
}
adView.loadAd(adRequest);
在上述代码中,R.id.adView
是你在布局文件中定义的广告视图的ID。
最后,在AndroidManifest.xml
文件中添加以下权限:
确保替换YOUR_TEST_DEVICE_ID
为你的测试设备的ID。你可以在Logcat中找到该ID。
以上示例代码为你提供了一种在发布版本和测试版本中使用不同AdMob ID的解决方案。在发布应用时,请确保使用发布版的AdMob ID,以确保广告正常显示。在测试期间,使用测试版的AdMob ID,以便显示测试广告并避免产生费用。