1、导入小米广告SDK

SDK在 小米开发者平台 中可以下载
导入MimoSdk.jar,右击jar包,Add As Library

在Module的AndroidManifest.xml中加入SDK demo 中的相应权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.test.testaar" ><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /><uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
</manifest>

导入Assets中的apk文件

2、编写加载广告的代码

package com.test.testaar;import android.app.Activity;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;import com.miui.zeus.mimo.sdk.MimoSdk;
import com.miui.zeus.mimo.sdk.ad.AdWorkerFactory;
import com.miui.zeus.mimo.sdk.ad.IAdWorker;
import com.miui.zeus.mimo.sdk.listener.MimoAdListener;
import com.xiaomi.ad.common.pojo.AdType;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class AdsTest {// 请注意,千万要把以下的 APP_ID 替换成您在小米开发者网站上申请的 AppID。否则,可能会影响你的应用广告收益。private static final String APP_ID = "2882303761517411490";// 以下两个没有的话就按照以下传入private static final String APP_KEY = "fake_app_key";private static final String APP_TOKEN = "fake_app_token";private Activity _unityActivity;/*** 获取unity项目的上下文* @return*/Activity getActivity(){if(null == _unityActivity) {try {Class<?> classtype = Class.forName("com.unity3d.player.UnityPlayer");Activity activity = (Activity) classtype.getDeclaredField("currentActivity").get(classtype);_unityActivity = activity;} catch (ClassNotFoundException e) {} catch (IllegalAccessException e) {} catch (NoSuchFieldException ignored) {}}return _unityActivity;}static boolean callUnity(String gameObjectName, String functionName, String args){try {Class<?> classtype = Class.forName("com.unity3d.player.UnityPlayer");Method method =classtype.getMethod("UnitySendMessage", String.class,String.class,String.class);method.invoke(classtype,gameObjectName,functionName,args);return true;} catch (ClassNotFoundException e) {} catch (NoSuchMethodException e) {} catch (IllegalAccessException e) {} catch (InvocationTargetException e) {}return false;}public void Init(){getActivity().runOnUiThread(new Runnable() {@Overridepublic void run() {callUnity("Main Camera","FromAndroid", "  android Init ");MimoSdk.setDebugOn();// 正式上线时候务必关闭stageMimoSdk.setStageOn();// 如需预置插件请在assets目录下添加mimo_assets.apkMimoSdk.init(getActivity().getApplicationContext(), APP_ID, APP_KEY, APP_TOKEN);// 如果api >= 23 需要显式申请权限
//                if (Build.VERSION.SDK_INT >= 23) {//                    if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED
//                            || ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
//                            || ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {//                        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
//                                Manifest.permission.READ_PHONE_STATE, Manifest.permission.INTERNET}, 0);
//                    }
//                }}});}public void ShowBanner(){callUnity("Main Camera","FromAndroid", "ShowBanner");getActivity().runOnUiThread(new Runnable() {@Overridepublic void run() {FrameLayout layout = new FrameLayout(getActivity());FrameLayout.LayoutParams frameLayout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);frameLayout.gravity=Gravity.BOTTOM|Gravity.CENTER;getActivity().addContentView(layout, frameLayout);//显示布局管理器try {MimoAdListener listener = new MimoAdListener() {@Overridepublic void onAdPresent() {}@Overridepublic void onAdClick() {}@Overridepublic void onAdDismissed() {}@Overridepublic void onAdFailed(String s) {callUnity("Main Camera","FromAndroid", "onAdFailed");}@Overridepublic void onAdLoaded(int i) {callUnity("Main Camera","FromAndroid", "onAdLoaded");}@Overridepublic void onStimulateSuccess() {}};IAdWorker mBannerAd = AdWorkerFactory.getAdWorker(getActivity(), layout, listener, AdType.AD_BANNER );mBannerAd.loadAndShow("802e356f1726f9ff39c69308bfd6f06a");} catch (Exception e) {e.printStackTrace();}}});}
}

3、在Unity中编写相应接口

using UnityEngine;
using UnityEngine.UI;public class Test : MonoBehaviour {public Text m_TextLog;private AndroidJavaObject _ajoAds = null;private void Start(){_ajoAds = new AndroidJavaObject("com.test.testaar.AdsTest");_ajoAds.Call("Init");AddText("Init Ads");}public void OnBannerClick(){_ajoAds.Call("ShowBanner");AddText("OnBannerClick");}//接收Android 发过来的消息public void FromAndroid(string content){AddText(content);}private void AddText(string content){m_TextLog.text += content + "  -->>  ";Debug.Log(content);}
}

创建一个Button 用于显示广告

4、Android导出Aar放入Unity中,真机测试

这样 Banner 广告就可以显示出来了, 其他类型的广告,按照sdk demo中的实例,也同样可以显示出来

【下载Unity与Android项目】

Unity版本: 2018.2.0
AndroidStudio版本:3.2
参考文章链接:
1.Unity与Android交互方案优化版
2.小米广告接入unity MimoSdk
3.Unity直接调用Android Native Code

Unity接入Android广告: 三、Android端接入小米广告SDK相关推荐

  1. Unity接入 阿里云OSS 腾讯云Cos的SDK,实现上传文件功能

    概念 Bucket(存储空间):Bucket是用户用来管理所存储Object的存储空间.每个用户可以拥有多个Bucket.Bucket的名称在OSS的范围内必须是全局唯一的,一旦创建之后无法修改名称. ...

  2. android 自定义课程表,Android课程表界面布局实现代码

    前言 Android课程表布局实现 我是个菜鸟,文章供参考 示例 图1: 图2: 布局分析 该界面主要可分为三部分: 1.显示年份及周数部分 2.显示周一到周日 3.课程显示部分 实现步骤 1.首先整 ...

  3. Unity接入原生Android穿山甲广告

     最近要接入穿山甲广告,我把穿山甲广告相关的接入流程记录一下,说说最近踩过的坑,和怎么解决的问题.穿山甲Android原生广告我接入了激励视频广告,开屏广告,Banner广告,和插屏广告,我会在下文中 ...

  4. Android开发-在Android应用里接入AdMob广告进行变现的实现

    前 言 前段时间,自己开发了一款个人的Android应用想上线,但是由于国内的应用商城对个人开发者不是很友好,即使应用已经申请了软件著作权了也不能上线的了,有些应用只能以企业的名义来上线不能以个人的名 ...

  5. android 腾讯广告联盟,Android腾讯广告联盟接入-----开屏广告

    emmmmm 开头说两句吧 因为这是我第一次写博客 相当于自己记录下自己解决的问题吧而且刚入社会去开阔自己的视野 正文!!!! 先上效果图 一:准备工作 当然现在先得去注册一个腾讯广告联盟的账号,注册 ...

  6. 接入腾讯广告联盟 Android SDK时遇到的坑

    出现的bug是:按照流程一步步接入腾讯广告SDK后,也按照注意事项对targetSDKVersion >= 24时的文件访问兼容性做了处理!但是8.0以上的手机仍然会出现当点击下载类广告的时候, ...

  7. Unity 接入 Android ShareSDK

    Unity 接入 Android ShareSDK 网上已经很多关于Unity 接入 ShareSDK 的例子,大多使用的是 ShareSDK For Unity3d 直接导入到Unity 中使用,下 ...

  8. 抖音广告IOS/Android接入笔记:

    一.抖音广告接入(Android接入) 注意:内容输出对接中已包含广告对接,建议使用广告4.6.0.7版本,如使用其他广告版本建议做好自测 //2600及以上版本,需要使用如下Maven命令 //火山 ...

  9. Android接入多盟广告SDK--让你的APP通过广告平台赚钱

    转载请注明出处:http://blog.csdn.net/Alpha58/article/details/59483561 前言 个人开发者可以通过在自己的APP里面嵌入广告,用户下载你的APP,点击 ...

最新文章

  1. python中int表示的数据类型是_python中的基本数据类型之 int bool str
  2. 北京智源人工智能研究院关于征集2019年度智源青年科学家的通知
  3. 我的世界服务器如何修改加载规模,我的世界服务器预加载区域怎么调小
  4. LeetCode Ransom Note(字符串)
  5. pytest fixture执行顺序
  6. 浅谈Python的编译与反编译
  7. Liunx的常用命令
  8. netty系列之:netty中的懒人编码解码器
  9. c++隐式类型转换存在的陷阱
  10. 三分钟小课堂-----------------docker(三)增删改查命令
  11. 查看在Ubuntu上打印的大型JSON文件
  12. 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  13. linux之登录式shell和非登录式shell
  14. 台式网卡计算机,台式机万能网卡驱动,教您如何给台式机安装万能网卡驱动
  15. ID3 决策树(基于西瓜数据集2.0)
  16. Java写一个矩阵输出并输出它的转置
  17. Linux PPP实现源码分析
  18. 克隆VirtualBox里的系统
  19. 【Ubuntu】Ubuntu如何实现中文输入?
  20. 为什么要使用copy_from_user

热门文章

  1. 计算机科学的常用软件,电脑必备的6款黑科技软件,每一个都堪称神器
  2. linux如何实现挂载—linux
  3. 产品经理书单:《大数据时代:生活、工作与思维的大变革》
  4. IDEA手动下载导入插件
  5. 深度:揭秘阿里巴巴的客群画像
  6. 2020.9.27 表格、表单
  7. LaTex 之 百分号 \% 和 下划线 \_
  8. 仿抖音,快手播放效果网页版及列表播放
  9. 开源协议(GPL,LGPL,BSD,MIT,Apache,Creative)
  10. mac下安装cnpm淘宝镜像