最近用到在软件主体中插入有米广告插件,但是在网上不论哪个平台搜的都是一份,就是以“经过了一番折腾,忙忙碌碌了一下午,终于......”开头的那篇,写的不是很详细,而且我自己应用的时候总是出错,最后花了点儿精力才弄出来,总结一下,希望对后人有用。
实现的效果:
准备:
1 悠米SDK的jar包。这个网上有,也可以直接从我这里下载
有米广告sdk下载
2 广告序列号和密钥。我这里用的是测试序列号和密钥。
有米appID和密钥
编写步骤:
1:将jar包添加到工程的lib目录下,即会自动添加到工程的buildpath下
2:配置权限:
在AndroidManifest.xml中的application标签外添加如下代码
<!-- 有米传媒 Android SDK 所需权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 可选 -->
<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="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<!-- /有米传媒 Android SDK 所需权限 -->
3 添加广告载体
AdActivity,广播接收器还有服务
在AndroidManifest.xml中的application标签下添加如下代码
这是有米广告的所有配置,其他的风格的广告暂时不做演示。
<!-- 有米传媒 Android SDK 配置(可直接复制节点) -->
<!-- SDK 必须配置 -->
<activity
android:name="net.youmi.android.AdBrowser"
android:configChanges="keyboard|keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<service
android:name="net.youmi.android.AdService"
android:exported="false" >
</service>
<receiver
android:name="net.youmi.android.AdReceiver"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!-- /SDK 必须配置 -->
<!-- 积分广告必须配置 -->
<receiver
android:name="net.youmi.android.offers.OffersReceiver"
android:exported="false" >
</receiver>
<!-- /积分广告必须配置 -->
<!-- SmartBanner广告必须配置 -->
<activity
android:name="net.youmi.android.SmartBannerActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:theme="@style/Transparent"
></activity>
<service
android:name="net.youmi.android.SmartBannerService"
android:exported="false"
></service>
<!-- /SmartBanner广告必须配置 -->
<!-- 有米渠道号(可选配置) 渠道号不能带空格,类型为整数 -->
<meta-data
android:name="YOUMI_CHANNEL"
android:value="0" >
</meta-data>
<!-- /有米渠道号(可选配置) -->
<!-- /有米传媒 Android SDK 配置 -->
4 初始化账号信息
在想要添加插播广告的activity的oncreate()中添加如下代码
// 初始化接口,应用启动的时候调用
// 参数:appId, appSecret, 调试模式
AdManager.getInstance(this).init("73057fb81878f2ba",
"f2707618edb7c2a4",true);
// 插播接口调用
// 开发者可以到开发者后台设置展示频率,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置)
// 自4.03版本增加云控制是否开启防误点功能,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置)
// 加载插播资源
SpotManager.getInstance(this).loadSpotAds();
// 设置展示超时时间,加载超时则不展示广告,默认0,代表不设置超时时间
SpotManager.getInstance(this).setSpotTimeout(10000);// 5秒
// 展示插播广告,可以不调用loadSpot独立使用
SpotManager.getInstance(MainActivity.this).showSpotAds(MainActivity.this, new SpotDialogListener() {
@Override
public void onShowSuccess() {
Log.i("SpotAd", "展示成功");
}
@Override
public void onShowFailed() {
Log.i("SpotAd", "展示失败");
}
});
至此就已经完成了,不需要再对工程进行任何添加。但是有一个问题,就是新软件要打开三次以后,广告才会每次打开的时候出现,以后会更正。
下面是我写的demo工程