废话不多说,直接进入主题1.使用任何的第三方第一步肯定是到其官网去注册一个新账号了,然后创建自己的应用,获取专属自己应用的标识,一般是appkey之类的一串字符串,有米的这个东西叫做 发布ID 和 应用密钥,如下图
<img src="" alt="" />
当你注册用户的时候,有米会让你完善自己的信息,输入身份证,银行卡的信息,这个很正常,毕竟这个广告平台是可以给用户获得利益的,当然需要实名 认证。
2.当你获取到发布ID 和 应用密钥之后就可以下载SDK进行开发了,下载SDK之后会有如下文件
<img src="" alt="" />
打开demo下会有normal和offers两个文件夹,直接将normal中的libs中的有米SDK文件YoumiSdk_v4.10_2014-09-25.jar拷贝到自己的工程中libs下,这样集成环境就好了接下来就是添加权限了
3.以下就是有米广告需要的权限,将其添加到manifest中
<!-- 有米广告配置权限 -->
<!-- 配置权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 以下为可选权限 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
另外还有其他配置 有米广告必须添加的组件以及渠道号
<!-- 有米广告必须添加的组件 -->
<!-- 添加必须的组件 -->
<activity
android:name="net.youmi.android.AdBrowser"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Light.NoTitleBar" >
</activity>
<service
android:name="net.youmi.android.AdService"
android:exported="false" >
</service>
<receiver android:name="net.youmi.android.AdReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!-- 有米渠道号(可选配置) 渠道号不能带空格,类型为整数 -->
<meta-data
android:name="YOUMI_CHANNEL"
android:value="0" >
</meta-data>
4.截止到现在关于有米广告接入的配置已经全部结束,下面就是进行代码编写
先贴上XML文件
<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" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<RelativeLayout
android:id="@+id/adLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></RelativeLayout>
</LinearLayout>
下面是完整的代码文件
public class MainActivity extends ActionBarActivity {
WebView webView;
ProgressBar progressBar;
RelativeLayout adLayout ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
webView = (WebView) findViewById(R.id.webView1);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
adLayout = (RelativeLayout)findViewById(R.id.adLayout);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.baidu.com/");
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
setTitle("页面加载中,请稍候..." + progress + "%");
setProgress(progress * 100);
if (progress == 100) {
setTitle(R.string.app_name);
progressBar.setVisibility(4);
}
}
});
addYoumi();
}
public void addYoumi(){
// 初始化接口,应用启动的时候调用
// 参数:appId, appSecret, 调试模式
AdManager.getInstance(this).init("f4d774879e2705d7", "cf1ffa3ece355f45", false);
// 检查配置,SDK运行失败时可以用来检查配置是否齐全
SpotManager.getInstance(this).checkPermission(this);
// 广告条接口调用(适用于应用)
// 将广告条adView添加到需要展示的layout控件中
AdView adView = new AdView(this, AdSize.FIT_SCREEN);
adLayout.addView(adView);
// 广告条接口调用(适用于游戏)
// 实例化LayoutParams(重要)
// AdView adView = new AdView(this, AdSize.FIT_SCREEN);
// 监听广告条接口
adView.setAdListener(new AdViewListener() {
@Override
public void onSwitchedAd(AdView arg0) {
Log.i("YoumiAdDemo", "广告条切换");
}
@Override
public void onReceivedAd(AdView arg0) {
Log.i("YoumiAdDemo", "请求广告成功");
}
@Override
public void onFailedToReceivedAd(AdView arg0) {
Log.i("YoumiAdDemo", "请求广告失败");
}
});
// 展示插播广告,可以不调用loadSpot独立使用
SpotManager.getInstance(this).showSpotAds(
this, new SpotDialogListener() {
@Override
public void onShowSuccess() {
Log.i("YoumiAdDemo", "展示成功");
}
@Override
public void onShowFailed() {
Log.i("YoumiAdDemo", "展示失败");
}
@Override
public void onSpotClosed() {
Log.e("YoumiAdDemo", "插屏关闭");
}
}); // //
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
// 如果有需要,可以点击后退关闭插播广告。
if (!SpotManager.getInstance(MainActivity.this).disMiss(true)) {
super.onBackPressed();
}
}
@Override
protected void onStop() {
// 如果不调用此方法,则按home键的时候会出现图标无法显示的情况。
SpotManager.getInstance(MainActivity.this).disMiss(false);
super.onStop();
}
@Override
protected void onDestroy() {
SpotManager.getInstance(this).unregisterSceenReceiver();
super.onDestroy();
}
}
以上就是本人接入有米广告的全部实现,附上几张效果图