对于广告平台来说,腾讯和百度应用的还是很多的,下面来介绍一下应用中插入百度广告的使用。首先要先到百度广告平台下载相关sdk文档和Demo。
1)把架包导入工程中,如图所示
2)添加相关权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 移动云 百度AppX SDK -->
<activity android:name="com.baidu.appx.ui.BDInnerBrowser" />
<receiver android:name="com.baidu.appx.app_download.CompleteReceiver" >
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
<action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
<!-- 注意!! 这句必须要加,否则接收不到安装完成广播 -->
</intent-filter>
</receiver>
2)开始使用
在MainActivity里
public class MainActivity extends Activity {
// 百度广告初始化控件-横屏广告
private RelativeLayout appxBannerContainer;
private static BDBannerAd bannerAdView = null;
// 百度插屏广告
private Button button;
private BDBannerAd bannerAdView1 = null;
private BDInterstitialAd appxInterstitialAdView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
appxBannerContainer = (RelativeLayout) findViewById(R.id.appx_banner_container);
button = (Button) findViewById(R.id.button);
bannerAdView = CpHelps.initCp(bannerAdView, appxBannerContainer,
MainActivity.this);
// 发布时请使用正确的ApiKey和广告位ID
// 此处ApiKey和推广位ID均是测试用的
// 您在正式提交应用的时候,请确认代码中已经更换为您应用对应的Key和ID
// 具体获取方法请查阅《百度开发者中心交叉换量产品介绍.pdf》
bannerAdView1 = new BDBannerAd(this,
"CRqGC0MMbzpSLT2EYgDKk58d6ymsHylt", "TRwQxo62D74ULcY9TDRCjvno");
appxInterstitialAdView = CpHelps.initInterCp(appxInterstitialAdView,
bannerAdView1, MainActivity.this);
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 展示插屏广告前先请先检查下广告是否加载完毕
if (appxInterstitialAdView.isLoaded()) {
appxInterstitialAdView.showAd();
} else {
appxInterstitialAdView.loadAd();
}
}
});
}
}
工具类如下:
public class CpHelps {
public static BDBannerAd initCp(BDBannerAd bannerAdView,
RelativeLayout appxBannerContainer, Context context) {
// 创建广告视图
// 发布时请使用正确的ApiKey和广告位ID
// 此处ApiKey和推广位ID均是测试用的
// 您在正式提交应用的时候,请确认代码中已经更换为您应用对应的Key和ID
// 具体获取方法请查阅《百度开发者中心交叉换量产品介绍.pdf》
bannerAdView = new BDBannerAd((Activity) context,
"CRqGC0MMbzpSLT2EYgDKk58d6ymsHylt", "TRwQxo62D74ULcY9TDRCjvno");
// 设置横幅广告展示尺寸,如不设置,默认为SIZE_FLEXIBLE;
bannerAdView.setAdSize(BDBannerAd.SIZE_FLEXIBLE);
// 设置横幅广告行为监听器
bannerAdView.setAdListener(new BannerAdListener() {
@Override
public void onAdvertisementDataDidLoadFailure() {
}
@Override
public void onAdvertisementDataDidLoadSuccess() {
}
@Override
public void onAdvertisementViewDidClick() {
// System.out.println("、、、、??我点击了广告;;;;;、、、、、");
}
@Override
public void onAdvertisementViewDidShow() {
}
@Override
public void onAdvertisementViewWillStartNewIntent() {
}
});
// 显示广告视图
appxBannerContainer.addView(bannerAdView);
return bannerAdView;
}
public static BDInterstitialAd initInterCp(
BDInterstitialAd appxInterstitialAdView, BDBannerAd bannerAdView,
Context context) {
// 创建广告视图
// 发布时请使用正确的ApiKey和广告位ID
// 此处ApiKey和推广位ID均是测试用的
// 您在正式提交应用的时候,请确认代码中已经更换为您应用对应的Key和ID
// 具体获取方法请查阅《百度开发者中心交叉换量产品介绍.pdf》
appxInterstitialAdView = new BDInterstitialAd((Activity) context,
"CRqGC0MMbzpSLT2EYgDKk58d6ymsHylt", "TRwQxo62D74ULcY9TDRCjvno");
// 设置插屏广告行为监听器
appxInterstitialAdView.setAdListener(new InterstitialAdListener() {
@Override
public void onAdvertisementDataDidLoadFailure() {
}
@Override
public void onAdvertisementDataDidLoadSuccess() {
}
@Override
public void onAdvertisementViewDidClick() {
}
@Override
public void onAdvertisementViewDidHide() {
}
@Override
public void onAdvertisementViewDidShow() {
}
@Override
public void onAdvertisementViewWillStartNewIntent() {
}
});
bannerAdView.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
return true;
}
});
// 加载广告
appxInterstitialAdView.loadAd();
return appxInterstitialAdView;
}
}
布局文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/appx_banner_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="10dp"
android:gravity="center" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:background="@null"
android:text="点击出现插屏"
android:textColor="#ff0000"
android:textSize="20sp" />
</LinearLayout>
需要注意的就是,发布时请使用正确的ApiKey和广告位ID,就是你自己或者公司在百度广告平台申请的ApiKey和广告位ID