首页 >> 大全

有米Android SDK开发者文档

2023-11-16 大全 37 作者:考证青年

前言 1.文档说明

有米 SDK v4从4.02版本开始整合了有米平台的所有广告形式以及实用功能服务。广告方面主要包含有积分和无积分两大类广告形式,无积分形式以广告条、插屏和自定义广告为主;有积分广告形式是以积分墙为核心,配合多种展现形式实现的一套完整的积分广告流程;实用功能包含检查更新和在线配置参数等功能服务。

*v4系列SDK的接口已经进行了大量修改,所有配置请以本文档为准。如果您的项目之前使用的是有米积分墙v2、广告条v3的话,建议清除所有相关的广告配置,并按本文档重新实现广告配置。

2.SDK功能概览 积分广告 实用功能 3.更新日志 无积分广告[自定义广告]

v4.03

v4.02

修复了一个特殊情况下无法启动下载任务的bug。修复使用4.2.2(即API-17)打包时无法正常显示广告的bug。 一、准备工作 1.申请AppID

1). 点击创建应用进行新应用创建。

2). 查看应用详情,获取发布ID和应用密钥,在后续初始化中使用。

2.导入SDK

将 *.jar 导入您的工程中。

1). 右键您的工程根目录,选择“New”,再选择“”,输入 name为"libs"

2). 将 .jar 拷贝到工程根目录的libs文件夹下

3). 右键 .jar ,选择“Build Path”再选择“Add to Build Path”

4). 右键您的工程根目录,选择->Java Build Path->Order and ,勾选 和 ,可消除on,详见下图。 5). 导入成功

3.配置 3.1 配置用户权限(重要)

在.xml文件中配置用户权限

请将下面权限配置代码复制到 .xml 文件中 :

  

3.2 添加必须组件(重要)

为确保正常使用广告业务,请务必配置,和 。

请将以下代码复制到.xml的节点里面:

 

为了避免由于手写引起的配置错误,建议直接复制上述代码

3.3 配置(重要)

为正常使用积分广告业务,请务必配置,否则将有可能获取不到积分。(如果您没有使用积分墙广告,则可以跳过该步骤)

请将以下代码复制到.xml的节点里面:


4.设置渠道号(可选)

目前,有米已经与多家应用商店合作,当您发布的目标应用商店有要求您加上有米的渠道号时,您可以按以下操作加入渠道号进行打包,这样可以保证您的应用在该应用商店上顺利审核通过。

渠道号列表详见:有米广告推广渠道号列表

请在.xml中添加以下代码:


5.调用初始化接口(重要)

请务必在主的中调用.().init 接口初始化App的发布ID 、应用密钥和测试模式等参数。

其中,发布ID和密钥在上文的申请AppID获得。

代码示例:

package com.testimport android.app.Activity import net.youmi.android.AdManager;/*** 这是您的应用的主Activity*/  public class YourMainActivity extends Activity { @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState); // 初始化应用的发布ID和密钥,以及设置测试模式AdManager.getInstance(this).init("您的应用发布ID","您的应用密钥", false); }}

!请将测试模式设置为false后上传至网站等待审核。

!未上传应用安装包、未通过审核的应用、模拟器运行,都只能获得测试广告,审核通过后,模拟器上依旧是测试广告,真机才会获取到正常的广告。

6.混淆配置(重要)

如果您的项目使用了混淆打包,请务必在-.txt中添加以下代码,否则将有可能获取不到广告:

    -dontwarn net.youmi.android.**-keep class net.youmi.android.** {  *;  }  

二、调用无积分广告 1.有米广告条调用接口 1.1 广告条尺寸

!提供了四种广告条尺寸提供给开发者使用:

. 手机

. 手机,平板

. 平板

. 平板

1.2 普通布局(适用于应用) 1.2.1 配置布局文件

复制以下代码到要展示广告的的文件中,并且放在合适的位置:


1.2.2 将加入布局

在展示广告的类中,添加如下代码:

//实例化广告条AdView adView = new AdView(this, AdSize.SIZE_320x50);//获取要嵌入广告条的布局LinearLayout adLayout=(LinearLayout)findViewById(R.id.adLayout);//将广告条加入到布局中adLayout.addView(adView);

1.2.3 悬浮布局(适用于游戏)

在展示广告的的中,添加如下代码:

//实例化LayoutParams(重要)FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT);     //设置广告条的悬浮位置layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT; // 这里示例为右下角  //实例化广告条AdView adView = new AdView(this, AdSize.SIZE_320x50);//调用Activity的addContentView函数this.addContentView(adView, layoutParams);

1.2.4 使用广告条监听接口(可选)

SDK提供给有需要的开发者使用广告条监听接口,用于监听广告条的状态

adView.setAdListener(new AdViewLinstener() { @Overridepublic void onSwitchedAd(AdView adView) {// 切换广告并展示}  @Overridepublic void onReceivedAd(AdView adView) {// 请求广告成功}@Overridepublic void onFailedToReceivedAd(AdView adView) {// 请求广告失败  }});

2.有米插屏广告调用接口 2.1 预加载插屏广告数据

预加载广告数据,在应用启动初始化的时候调用,SDK将会以异步方式预加载3-5条广告数据到本地缓存,当调用展示插播接口时候便能立即展示广告。

如果不先加载数据,调用展示插播接口的时候,会等待广告数据加载成功再进行展示,会造成一定延时。

调用接口

SpotManager.getInstance(this).loadSpotAds();

注:this参数是继承自的类实例

2.2 展示插播广告

展示插播广告,一般可以在应用启动或者游戏通关等场景中调用。 开发者可以到开发者后台设置展示频率,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置) 自4.03版本增加云控制是否开启防误点功能,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置)

SpotManager.getInstance(this).showSpotAds(this);

3.有米自定义广告调用接口 3.1 预加载自定义广告数据

预加载广告数据,在应用启动初始化的时候调用,SDK将会以异步方式预加载自定义广告列表到手机内存,当调用()或者()接口时候便能立即获得数据。

调用接口

DiyManager.initAdObjects(this);

3.2 获取源数据广告列表

调用接口

List list = DiyManager.getAdList(this);

_开发文档下载_miui开发者文档

3.3 获取单条源数据广告

调用接口

AdObject adObject = DiyManager.getAdObject(this); //轮流获取列表中的广告int adid = adObject.getAdId();         //应用广告idString appName = adObject.getAppName();      //应用广告名String appText = adObject.getAdText();       //应用广告语String author = adObject.getAuthor();       //应用作者String category = adObject.getCategory();     //应用分类String description = adObject.getDescription();  //应用广告描述Bitmap icon = adObject.getIcon();         //图标String iconUrl = adObject.getIconUrl();      //图标地址String packageName = adObject.getPackageName();  //包名String size = adObject.getSize();         //安装包大小int versionCode = adObject.getVersionCode();  //安装包版本号String versionName = adObject.getVersionName();  //安装包版本名ArrayList screenShortcuts = adObject.getScreenShortcuts(); //安装包截图数张

3.3 下载事件接口

调用接口

DiyManager.downloadAd(this, adObject.getAdId());

3.4 推荐墙接口

调用接口

DiyManager.showRecommendWall(this); //展示所有无积分推荐墙//DiyManager.showRecommendAppWall(this);  //展示应用推荐墙//DiyManager.showRecommendGameWall(this); //展示游戏推荐墙

3.5 迷你广告条接口

显示无积分的横幅广告条,将高度为32dp的广告条定义为迷你。

3.5.1 普通布局(适用于应用)

1).配置布局文件

复制以下代码到要展示广告的的文件中,并且放在合适的位置:


2).将积分加入布局

在展示广告的类中,添加如下代码:

//获取要嵌入迷你广告条的布局RelativeLayout adLayout=(RelativeLayout)findViewById(R.id.AdLayout);//demo 1 迷你Banner : 宽满屏,高32dpDiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_MATCH_SCREENx32);//传入高度为32dp的AdSize来定义迷你Banner    //demo 2 迷你Banner : 宽320dp,高32dpDiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_320x32);//传入高度为32dp的AdSize来定义迷你Banner //将积分Banner加入到布局中adLayout.addView(banner);

3.5.1 悬浮布局(适用于游戏)

在展示广告的的中,添加如下代码:

//实例化LayoutParams(重要)FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT);     //设置迷你Banner的悬浮位置layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT; // 这里示例为右下角  //实例化迷你BannerDiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_MATCH_SCREENx32);//传入高度为32dp的DiyAdSize来定义迷你Banner//调用Activity的addContentView函数this.addContentView(banner, layoutParams);

三、调用积分广告

>了解积分墙

!注意,使用积分广告请务必配置

1.设置用户标识(可选)

如果您的应用有独立的用户账号体系,并且允许用户随时切换账户,那么您可能需要准确跟踪用户的哪个账号完成了积分墙广告并赚取了积分。通过为用户设置一个自定义标识(比如账户名),便可以将这个标识附加在积分墙会话中,这样在积分结算以及订单回调时,您将可以清楚知道具体哪个账号完成了积分任务,从而进行下一步处理。示例代码:

// 调用以下接口设置您的用户的唯一标识  OffersManager.getInstance(this).setCustomUserId("abcdefg_123");

注:用户标识必须为"字母数字下划线"组合*此设置适用于自定义积分账户和服务器积分订单回调*

2.积分墙初始化接口

请务必在应用的启动代码,即在主的方法中分别调用积分墙专用的初始化接口。

代码示例:

package com.testimport android.app.Activity import net.youmi.android.AdManager;import net.youmi.android.offers.OffersManager;/*** 这是您的应用的主Activity*/  public class YourMainActivity extends Activity { @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState); // 初始化应用发布ID和密钥,以及设置测试模式AdManager.getInstance(this).init("您的应用发布ID","您的应用密钥", false); // 请务必调用以下代码,告诉SDK应用启动,可以让SDK进行一些初始化操作。该接口务必在SDK的初始化接口之后调用。OffersManager.getInstance(this).onAppLaunch(); } }

3.积分墙会话结束接口

请务必在应用退出前调用积分墙专用的会话结束接口,让SDK进行一些资源的释放和清理。

代码示例:

import net.youmi.android.offers.OffersManager;  ...// 请务必在应用退出的时候调用以下代码,告诉SDK应用已经关闭,可以让SDK进行一些资源的释放和清理。OffersManager.getInstance(this).onAppExit(); ...

4.积分广告展现形式 4.1 全屏积分墙

4.1.1 基本调用方法

调用.(this).()展示全屏的积分墙。代码示例:

import android.app.Activity  import net.youmi.android.offers.OffersManager;....//调用showOffersWall显示全屏的积分墙界面OffersManager.getInstance(this).showOffersWall();....

4.1.2 设置全屏积分墙屏幕方向(可选)

积分墙默认情况下根据手机系统的屏幕方向布局,如果希望强制设置积分墙的方向为竖向或横向,只需要在.xml中配置即可。设置为竖向显示:

     

设置为横向显示:

4.2 对话框积分墙

调用的( )方法即可。如果您希望自定义对话框的大小,可以调用其重载函数。

代码示例

import android.app.Activity  import net.youmi.android.offers.OffersManager;....//下面展示三种可选的调用方法://*调用方式1.调用showOffersWallDialog显示默认的对话框样式积分墙:OffersManager.getInstance(this).showOffersWallDialog(this); //*调用方式2.传入宽度和高度的像素值(注意:传入的宽高请确保是在竖屏状态下最佳的值,sdk会自动适应屏幕方向):OffersManager.getInstance(this).showOffersWallDialog(this,300,400); //*调用方式3.传入宽度和高度占系统屏幕的百分比(注意,值类型为double,请确保大于0并小于1)OffersManager.getInstance(this).showOffersWallDialog(this,0.9d,0.95d);....

4.3 积分和积分迷你

显示有积分的横幅广告条,将高度为60dp的积分广告条定义为积分,高度为32dp的积分广告条定义为积分迷你。

通过和实例化积分广告条。

以下是的几种规格定义:

效果图1(竖屏):

效果图2(横屏):

4.3.1 普通布局(适用于应用)

1).配置布局文件

复制以下代码到要展示广告的的文件中,并且放在合适的位置:


2).将积分加入布局

在展示广告的类中,添加如下代码:

    ...import net.youmi.android.offers.OffersBanner; import net.youmi.android.offers.OffersAdSize;... //获取要嵌入积分广告条的布局RelativeLayout adLayout=(RelativeLayout)findViewById(R.id.offersAdLayout);//demo 1 积分Banner : 宽满屏,高60dpOffersBanner banner = new OffersBanner(this, OffersAdSize.SIZE_MATCH_SCREENx60);//传入高度为60dp的OffersAdSize来定义积分Banner //demo 2 积分Banner : 宽320dp,高60dpOffersBanner banner = new OffersBanner(this, OffersAdSize.SIZE_320x60);//传入高度为60dp的OffersAdSize来定义积分Banner  //demo 3 积分迷你Banner : 宽满屏,高32dpOffersBanner banner = new OffersBanner(this, OffersAdSize.SIZE_MATCH_SCREENx32);//传入高度为32dp的OffersAdSize来定义积分迷你Banner   //demo 4 积分迷你Banner : 宽320dp,高32dpOffersBanner banner = new OffersBanner(this, OffersAdSize.SIZE_320x32);//传入高度为32dp的OffersAdSize来定义积分迷你Banner    //将积分Banner加入到布局中adLayout.addView(banner);

4.3.2 悬浮布局(适用于游戏)

在展示广告的的中,添加如下代码:

//实例化LayoutParams(重要)FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT);     //设置积分Banner的悬浮位置layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT; // 这里示例为右下角  //实例化积分BannerOffersBanner banner = new OffersBanner(this, OffersAdSize.SIZE_MATCH_SCREENx60);//传入高度为60dp的OffersAdSize来定义积分Banner//调用Activity的addContentView函数this.addContentView(banner, layoutParams);

4.4 积分广告相关设置

可以在有米主站开发者面板设置积分广告条的切换频率和背景颜色等。

5.积分托管

积分墙SDK内置积分账户托管,以下是调用方法。

5.1 查询积分余额

代码示例:

import android.app.Activity  import net.youmi.android.offers.OffersManager;...  //调用queryPoints获取积分余额int myPointBalance = PointsManager.getInstance(this).queryPoints();Log.d("test","积分余额为:"+myPointBalance);...

5.2 消费积分

代码示例:

import android.app.Activity  import net.youmi.android.offers.PointsManager;...   //调用spendPoints消费指定金额的积分,这里示例消费100积分if(PointsManager.getInstance(this).spendPoints(100)){           Log.d("test","已消费100积分");}else{Log.d("text","消费积分失败(积分余额不足)");}   ...     

5.3 奖励积分(可选)

当用户连续n天登录或通过了某关卡时,您可以使用以下接口奖励用户一定额度的积分。

代码示例:

import android.app.Activity  import net.youmi.android.offers.PointsManager;...//调用awardPoints可以奖励指定金额的积分,这里示例奖励50积分   PointsManager.getInstance(this).awardPoints(50);                Log.d("test","已成功奖励50积分");          ...

5.4 监听积分余额变动

SDK提供了监听积分余额变动接口,方便UI自动刷新显示变动的积分余额。

监听积分变动的UI相关的类必须 接口,并且需要在初始化及关闭时分别调用的和接口示例如下:

package com.testimport net.youmi.android.offers.OffersManager;import net.youmi.android.offers.PointsChangeNotify;import net.youmi.android.offers.PointsManager;import android.app.Activity;        public class YourTestActivity extends Activity implements PointsChangeNotify { @Overrideprotected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stubsuper.onCreate(savedInstanceState);     //注意:请务必调用registerNotify来注册监听器,否则将得不到积分账户余额变动的通知。PointsManager.getInstance(this).registerNotify(this);    }@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();//注意:请务必在onDestroy中调用unRegisterNotify来注销监听PointsManager.getInstance(this).unRegisterNotify(this);} @Overridepublic void onPointBalanceChange(int pointsBalance) {// TODO Auto-generated method stub  //当该方法被调用时,表示积分账户余额已经变动了,这里的pointsBalance是积分的当前余额数Log.d("test","积分账户余额已变动,当前余额为:"+pointsBalance);//注:您可以在这里进行更新界面显示等操作,}}  

6.监听积分赚取订单 (可选)

上文提到的监听积分余额变动只是用于监听SDK托管积分账户的余额变动,如果您希望监听用户赚取积分的订单详情,您可以使用监听积分赚取订单接口。

首先,您需要定义一个类(名字可以随意),它必须继承自:

示例代码:

package com.test;  import android.content.Context;    import net.youmi.android.offers.EarnPointsOrderList;  import net.youmi.android.offers.PointsReceiver; public class MyPointsReceiver extends PointsReceiver{       @Overrideprotected void onEarnPoints(Context context, EarnPointsOrderList list) {//当SDK获取到用户赚取积分的订单时,会第一时间调用该方法通知您。//参数EarnPointsOrderList是一个积分订单列表,您可以在这里处理积分详细订单。}       @Overrideprotected void onViewPoints(Context context) {//这里是个有趣的小功能,当用户赚取积分之后,积分墙SDK会在通知栏上显示一条获取积分的提示,如果用户点击了这个通知,该函数会被调用。  //这时候您可以在这里实现一个跳转,让用户跳转到您设计好的一个积分账户余额页面(如"我的账户"之类的Activity)。//该操作是可选的,如果需要关闭通知栏积分提示,请调用PointsManager.getInstance(context).setEnableEarnPointsNotification(false) }   }

下一步,您需要在.xml上配置刚刚定义的 :

示例代码:

注意:这里有一个很关键的细节,您必须为配置两个,的名字分别是以"ep_"和"vp_"开头的,以您的应用的AppID结尾的字符串。(AppID是从有米主站上申请的应用ID,16个字符,所以的总长度应该是19个字符)

附录:积分订单类定义

:

    package net.youmi.android.offers;.../*** 积分订单列表* */public class EarnPointsOrderList {/*** 获取服务器上设置积分单位名称*/public String getCurrencyName();/*** 根据index获取订单详情(EarnPointsOrderInfo)*/public EarnPointsOrderInfo get(int index);/*** 判断列表是否为空*/public boolean isEmpty();/*** 获取列表项数量*/public int size(); }

:

    package net.youmi.android.offers; /*** 赚取积分的订单*/public final class EarnPointsOrderInfo {/*** 获取订单号(具有唯一性)*/public String getOrderID();/*** 获取渠道号,这里指在AndroidManifest.xml上配置的有米渠道号,详见文档 */public int getChannelId();/*** 获取开发者自定义用户唯一标识,该值通过OffersManager设置*/public String getCustomUserID();/*** 获取积分订单的状态: 1.表示开发者获得了收入并且用户获得了积分。 2.表示开发者没有获得收入但用户获得了积分(未通过审核以及测试模式下结算无效等情况)。*/public int getStatus()/*** 本次获取积分的描述语,如"成功安装《--》获取了100金币" */public String getMessage();/*** 本次获得的积分 */public int getPoints();/*** 本次获得积分的结算时间*/public long getSettlingTime();
}

7.自定义积分账户(可选)

如果您不想使用上文提到的SDK积分托管,而是希望实现自己的客户端积分托管功能(即自定义积分账户),请参照监听积分赚取订单的步骤实现积分订单监听并实现自定义积分管理功能。

8.服务器积分订单回调(可选)

如果您希望用户赚取积分的订单结算完成后,直接由有米的服务器通知您的服务器,可以使用服务器积分订单回调接口, 协议传送门:有米积分墙积分订单服务器回调协议

1.实现接收订单的回调接口时,请务必按照协议说明进行。

2.务必在有米主站开发者面板的目标应用详情页上设置您的回调地址。

请注意,一旦您设置了积分订单回调地址,有米服务器会在用户的积分订单成功结算后第一时间通知您的服务器,但客户端将不再接收到任何积分订单记录,即上文提到的SDK积分托管、监听积分赚取订单以及自定义积分账户等功能将不可用。

9.配置积分墙SDK的积分到账提醒(可选)

为了让用户更加清楚获知积分的赚取情况,SDK使用了悬浮提示框以及通知栏提示来提醒用户积分到账情况。此功能是默认开启的,但您可以通过的相关接口来关闭提醒功能。

示例代码

...import net.youmi.android.offers.PointsManager   ...  //关闭积分到账通知栏提示功能PointsManager.getInstance(this).setEnableEarnPointsNotification(false);...//关闭积分到账悬浮框提示功能PointsManager.getInstance(this).setEnableEarnPointsToastTips(false);...

四、实用功能 1.检查更新接口 (可选)

有米广告SDK提供应用版本检查更新接口,您可以在应用中调用提示用户升级。

通过在有米主站上传应用的新版本通过审核后,使用有米广告SDK的应用版本检查更新接口就可以获得更新信息,它包括更新提示和下载地址,这样您可以进行下一步的操作,如向用户提示更新以及下载安装新版本。

接口:

...import net.youmi.android.AdManagerimport net.youmi.android.dev.AppUpdateInfoimport net.youmi.android.dev.CheckAppUpdateCallBack;...//通过调用AdManager的syncCheckAppUpdate或asyncCheckAppUpdate接口即可检查更新。//返回值AppUpdateInfo包含了更新提示以及下载地址,如果结果为null则表示当前已经是最新版本,无需下一步操作////1.同步调用方法:   AppUpdateInfo updateInfo=AdManager.getInstance(this).syncCheckAppUpdate();  //注意,此方法务必在非UI线程调用,否则有可能不成功。////2.异步调用方法AdManager.getInstance(this).asyncCheckAppUpdate(callback); //注意,此方法可以在任意线程中调用。////当updateInfo不为null时,请自行处理提示及下载安装流程。    ...

示例(同步接口,必须在非UI线程中调用,示例使用了):

import net.youmi.android.AdManager;  import net.youmi.android.dev.AppUpdateInfo;  import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.Uri;import android.os.AsyncTask;/**这里示例一个调用更新应用接口的工具类,由开发者自定义,继承自AsyncTask **/public class UpdateHelper extends AsyncTask<Void, Void, AppUpdateInfo> {private Context mContext; public UpdateHelper(Context context) {mContext = context;}@Overrideprotected AppUpdateInfo doInBackground(Void... params) { try {//在doInBackground中调用AdManager的checkAppUpdate即可从有米服务器获得应用更新信息。return AdManager.getInstance(mContext).syncCheckAppUpdate();  //此方法务必在非UI线程调用,否则有可能不成功。} catch (Throwable e) {// TODO: handle exceptione.printStackTrace();}return null;}@Overrideprotected void onPostExecute(AppUpdateInfo result) {super.onPostExecute(result);try {if (result == null || result.getUrl() == null) {//如果AppUpdateInfo为null或它的url属性为null,则可以判断为没有新版本。Toast.makeText(this, "当前版本已经是最新版", Toast.LENGTH_SHORT).show();return;} //这里简单示例使用一个对话框来显示更新信息new AlertDialog.Builder(mContext).setTitle("发现新版本").setMessage(result.getUpdateTips())//这里是版本更新信息.setNegativeButton("马上升级",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(result.getUrl())); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent);//ps:这里示例点击"马上升级"按钮之后简单地调用系统浏览器进行新版本的下载,//但强烈建议开发者实现自己的下载管理流程,这样可以获得更好的用户体验。}}).setPositiveButton("下次再说",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) { dialog.cancel();}}).create().show(); } catch (Throwable e) { e.printStackTrace();}}}

示例(异步接口,可在任意线程使用):

import net.youmi.android.AdManager;  import net.youmi.android.dev.AppUpdateInfo;   import net.youmi.android.dev.CheckAppUpdateCallBack;import android.content.Context;import android.app.Activity import android.content.Intent;import android.net.Uri; /**这里示例一个Activity调用**/public class UpdateActivity extends Activity implements CheckAppUpdateCallBack{ @Overrideprotected void onCreate(Bundle savedInstanceState)  {  //调用检查更新接口,这里可以在UI线程调用,也可以在非UI线程调用。AdManager.getInstance(this).asyncCheckAppUpdate(this);   }@Override public void onCheckAppUpdateFinish(AppUpdateInfo updateInfo) {//检查更新回调,注意,这里是在UI线程回调的,因此您可以直接与UI交互,但不可以进行长时间的操作(如在这里访问网络  是不允许的)if(updateInfo==null){//当前已经是最新版本}else{//有更新信息}}  }

2.在线参数 (可选) 2.1 在线参数介绍

在线参数是有米平台推出的新服务,可以让开发者动态修改应用中的配置项,如欢迎语、道具价格、广告开关等等。它以Key-Value的形式使用。

2.2 使用在线参数

开发者可以在有米主站开发者面板的应用详情里面设置指定应用的在线参数,然后在代码中调用它。接口示例如下:

示例代码:

import net.youmi.android.AdManager;   import net.youmi.android.dev.OnlineConfigCallBack; //异步回调... String mykey="mycustomkey";//key  String defaultValue=null;//默认的value,当获取不到在线参数时,会返回该值  //1.同步调用方法,务必在非UI线程中调用,否则可能会失败。String value=AdManager.getInstance(context).syncGetOnlineConfig(key,defaultValue);  //--------------------------------------------------//2.异步调用方法(可在任意线程中调用):AdManager.getInstance(this).asyncGetOnlineConfig(mykey, new OnlineConfigCallBack() {@Overridepublic void onGetOnlineConfigSuccessful(String key, String value) {// TODO Auto-generated method stub//获取在线参数成功}       @Overridepublic void onGetOnlineConfigFailed(String key) {// TODO Auto-generated method stub//获取在线参数失败,可能原因有:键值未设置或为空、网络异常、服务器异常}});...

注:在线配置服务缓存具有一定的延时,因此在开发者控制面板上更改的配置项客户端可能需要一定的时间才能响应更新。

五、打包发布 1.打包前检查

请检查是否已经按文档的步骤嵌入了广告SDK,包括.xml的配置、初始化接口的调用以及各个广告接口的使用。

1.1 检查基本配置 检查初始化接口:检查积分墙配置: 1.2 检查混淆配置

请务必详细检查混淆配置,否则将有可能获取不到广告。

2.测试

请在手机上运行测试是否可以正常获取广告。

3.上传审核

发布前请在有米主站上传应用进行审核。审核通过之后请测试是否可以正常获得收入,在有米主站开发者面板的收入报表中可以查看收入情况。

4.发布

通过审核并且确认可以获得广告收入之后,就可以正式发布应用了。

六、常见问题 1.环境配置问题 1.1 有米广告SDK使用哪种字符编码

有米广告SDK使用UTF-8字符编码,在嵌入广告以及导入示例程序的时候请使用UTF-8编程环境,否则会出现乱码情况。

1.2 有米广告SDK兼容系统SDK的哪些版本

有米广告 SDK兼容 系统 2.1及以上版本SDK,对于2.1以下版本可能会有兼容性问题。

2.如何关闭debug log

如果需要关闭有米广告SDK的 debug log,请调用.(false)来关闭sdk的log输出。

"代码示例:"

import net.youmi.android.AdManager...//调用以下接口关闭有米广告SDK相关的logAdManager.getInstance(this).setEnableDebugLog(false);...

注意:上传到有米主站进行审核时务必开启debug log,这样才能保证通过审核。

3.关于测试模式

广告运行在非发布状态下的情况属于测试模式。

以下情况下属于测试模式:

1. 在初始化接口设置测试模式为true

2. 应用未上传、待审核的情况下属于测试模式

3. 已上传并通过审核,但是后续版本应用ID和密钥与应用的包名不对应

测试模式下积分墙的标题会有"测试"字样的提示语,该模式下可以获得更多的测试广告,已经安装过的广告卸载后可以重复安装,但只能结算积分,不结算收入。正式发布前请务必将初始化接口的测试模式参数设置为flase,并且上传应用到有米主站进行审核。

4.联系我们

如果您在使用有米 SDK 的过程中遇到了问题,或者对于SDK有任何宝贵的改进意见,欢迎联系我们的企业客服Q : 我们将竭诚为您服务。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了