大家好,我叫紅定義,最幾天接入小米盒子的SDK,費了點周折,多謝 ぷMeteor℡、秋實、Feel、seav、小山、楊冬、小福貴!、 趙永鵬 的幫助才能順利接通,下面我把具體操作步驟給大家梳理一遍,也好讓大家少走彎路。

1.首先在小米開發者站注冊賬號

http://dev.xiaomi.com/

2.然后在電視應用中創建應用

3.選擇配置,配置支付的商品

4.然后添加商品,添加完保存即可

5.打開unity新建一個工程,目錄結構如下圖,大小寫和結構要對

6.解壓縮SDK文件包

7.新建Eclipse工程,bundle要和unity的一致

8.導入apk及jar文件,目錄如下

9.Classes.jar是unity的Android包

10.也一起導入進來

11.MainActivity.java 代碼如下

package com.tantoo.CrazyGuess_TVP_xiaomi.mitv;

import java.util.UUID;

import android.content.Intent;

import android.os.Bundle;

import com.unity3d.player.UnityPlayer;

import com.unity3d.player.UnityPlayerActivity;

import com.xiaomi.gamecenter.sdk.MiCommplatform;

import com.xiaomi.gamecenter.sdk.MiErrorCode;

import com.xiaomi.gamecenter.sdk.OnLoginProcessListener;

import com.xiaomi.gamecenter.sdk.OnPayProcessListener;

import com.xiaomi.gamecenter.sdk.entry.MiAccountInfo;

import com.xiaomi.gamecenter.sdk.entry.MiAppInfo;

import com.xiaomi.gamecenter.sdk.entry.MiBuyInfoOffline;

import com.xiaomi.gamecenter.sdk.entry.MiGameType;

public class MainActivity extends UnityPlayerActivity implements

OnLoginProcessListener, OnPayProcessListener {

public static MiAppInfo appInfo;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

appInfo = new MiAppInfo();

appInfo.setAppId("2882303761517236914");

appInfo.setAppKey("5211723634914");

appInfo.setAppType(MiGameType.offline);

MiCommplatform.Init(this, appInfo);

}

public void login_test(String m_str) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae", "login0");

MiCommplatform.getInstance().miLogin(MainActivity.this,

MainActivity.this);

UnityPlayer.UnitySendMessage("Main Camera", "messgae", "login1");

}

public void buy_test(String m_str0, String m_str1, int m_int0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae", "buy_test");

MiBuyInfoOffline offline = new MiBuyInfoOffline();

offline.setCpOrderId(UUID.randomUUID().toString());

offline.setProductCode("CrazyGuess_Item_4");

offline.setCount(1);

try {

// 調用SDK執行購買操作

MiCommplatform.getInstance().miUniPayOffline(MainActivity.this,

offline, MainActivity.this);

} catch (Exception e) {

e.printStackTrace();

}

}

@Override

public void finishLoginProcess(int arg0, MiAccountInfo arg1) {

if (MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS == arg0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"GAMECENTER_SUCCESS");

} else if (MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_LOGINOUT_SUCCESS == arg0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"ERROR_LOGINOUT_SUCCESS");

} else if (MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_LOGINOUT_FAIL == arg0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"ERROR_LOGINOUT_FAIL");

} else if (MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED == arg0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"ERROR_ACTION_EXECUTED");

} else {

UnityPlayer.UnitySendMessage("Main Camera", "messgae", "else");

}

}

@Override

public void finishPayProcess(int arg0) {

if (arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS)// 成功

{

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_SUCCESS");

} else if (arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_CANCEL

|| arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_CANCEL)// 取消

{

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_ERROR_CANCEL");

} else if (arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_FAILURE)// 失敗

{

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_ERROR_PAY_FAILURE");

} else if (arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_REPEAT) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_ERROR_PAY_REPEAT");

} else if (MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED == arg0) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED");

} else if (arg0 == MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_LOGIN_FAIL) {

UnityPlayer.UnitySendMessage("Main Camera", "messgae",

"MI_XIAOMI_GAMECENTER_ERROR_LOGIN_FAIL");

}

}

}

12.AndroidManifest.xml的代碼如下

package="com.tantoo.CrazyGuess_TVP_xiaomi.mitv"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="11"

android:targetSdkVersion="18" />

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:screenOrientation="landscape"

android:theme="@style/AppTheme" >

android:name="com.tantoo.CrazyGuess_TVP_xiaomi.mitv.MainActivity"

android:label="@string/app_name" >

13.右鍵-工程在系統中的路徑

14.Cmd-E:-cd E:\EclipseProjects\XiaomiSDKtest\bin\classes

15.jar -cvf reddefine.jar *

16.復制reddefine.jar到unity的bin文件夾中,也把SDK包丟到bin中

17.回到Eclipse工程目錄,拷貝這兩項

18.到unity的bin目錄同級

19.Unity中test的代碼

usingUnityEngine;

usingSystem.Collections;

publicclassTest:MonoBehaviour

{

privatestringm_strss="";

voidOnGUI()

{

if(GUI.Button(newRect(50,50,100,50),"login_test")   )

{

m_strss+=" login ";

using(AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer"))

{

using(AndroidJavaObjectjo=jc.GetStatic("currentActivity"))

{

jo.Call("login_test","hehe");

}

}

}

if(GUI.Button(newRect(50,150,100,50),"press") )

{

m_strss+=" buy ";

using(AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer"))

{

using(AndroidJavaObjectjo=jc.GetStatic("currentActivity"))

{

jo.Call("buy_test","hehe","00",1);

}

}

}

GUILayout.Label(m_strss);

}

publicvoidmessgae(stringstr)

{

m_strss+=str+"   ";

}

}

20.Playersetting屬性

21.Build出包

22.安裝到小米盒子上,OK,大功告成,哈哈~

android 小米盒子开发,接小米盒子Android SDK相关推荐

  1. 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...

    Android 7.0系统已经陆续推送,今天小米5手机的Android 7.0终于公测了,虽然只限于开发版,但是小伙伴们总算有盼头了!小米5开发版怎么升级Android 7.0?下面小编为大家带来小米 ...

  2. 实现Android底层驱动开发并裁剪定制Android操作系统

    毕业论文 题   目实现Android底层驱动开发并裁剪定制Android操作系统 学   院电子信息与电气工程学院 姓   名牛xxx民 专   业电子信息科学与技术 学   号2012xxxxxx ...

  3. 小米9开发版已开启Android,小米9 MIUI安卓10开发版已开始推送,建议大家不要去升级...

    近期,有小米9用户接到了安卓10的开发版更新,此前Android Q开发版一直在内测中,并没有说明何时结束,这次意外接到系统更新,还是让人有点惊讶的,已经有不少用户更新了该系统.接下来,我们一起来看看 ...

  4. 记一次Android全流程开发体验经历以及Android Studio使用【从环境搭建到项目打包发布 + 真实踩坑总结】

    前言 临时安排接手一个 Android 应用项目开发,庆幸的是 Android APP 已经开发完成,我只需要在我的电脑上运行起来打包看一下效果即可,但是对于一个从未接触过安卓开发的我来说真的是费尽脑 ...

  5. 小米6Android8开发版,小米6安卓8.0系统来了 MIUI论坛开启内测招募

    站长之家(ChinaZ.com) 11 月 29 日消息:谷歌发布Android 8. 0 已经有一段时间了,不过从之前的统计数据来看占有率还很低,很多厂商除了新机外还很少有计划升级的,目前来看占有率 ...

  6. android另类工具,[置顶] android应用程序开发另解及Android SDK工具集的另类用法

    转载请注明出处: LouisWang http://blog.csdn.net/louiswangbing/article/details/6606865 相信对于广大Android应用开发爱好者来说 ...

  7. android 添加ga_android开发步步为营之70:android接入Google Analytics总结

    求人不如求己,今天项目里要接入Google Analytics,这个是做应用统计分析用的,可以查看当前手机活跃用户,事件点击等等数据,先看看效果: 之前eclipse里面接入已经成功,昨天项目组决定项 ...

  8. Android NDK jni开发,适当的给Android 代码加密

    为什么使用ndk开发了,就是 稍微将代码隐藏一下..Android 虽然打包能混淆,但是有些东西是不能混淆的,如下图,压缩密码把直勾勾的下载代码中.下面手把手稍微优化下. 將操作密码的部分我们通过 j ...

  9. Android学习1——开发环境搭建、Android Studio安装

    一.目的 1.掌握 Android 开发环境搭建方法 2.掌握 Android 项目建立方法 3.掌握 Gitee 账号建立及其使用方法 4.掌握 Android 模拟器使用方法 二.实验环境 1.J ...

  10. android系统nfc开发,GitHub - hanjie511/MyNFC: android的NFC开发入门

    MyNFC android的NFC开发入门 NFC简述 近距离无线通信 (NFC) 是一组近距离无线技术,通常只有在距离不超过 4 厘米时才能启动连接.借助 NFC,您可以在 NFC 标签与 Andr ...

最新文章

  1. SQLServer怎样把本地数据导入到远程服务器上(转载)
  2. linux内核网络协议栈--linux网络设备理解(十三)
  3. sublime Text3 设置多个浏览器预览
  4. 火星人敏捷开发手册 原10.31版本已于10.14提前发布,特此通知
  5. 实现3d图片移动_「3D建模」什么是动画和角色设计的3D索具?
  6. 20应用统计考研复试要点(part25)--简答题
  7. python获取设备硬件信息_Python实现读取机器硬件信息的方法示例
  8. php后端mysql,【后端开发】PHP如何处理MySQL死连接
  9. 8.对Hello World程序的深入
  10. java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
  11. cmake 交叉编译_如何使用CMake编译RTT微内核
  12. JavaScript之jQuery
  13. 三大有限元分析软件(ABAQUS、ANSYS、MSC)的优缺点是什么?应如何选择?
  14. 宗地图绘制要求和规范_国内土地市场宗地图的绘制标准制图规范-【领仕网】...
  15. 2021-11-10全球货币市场基础知识系列3
  16. 洪水填充算法_优化洪水相似算法(渗流理论)
  17. 项目管理:目标的价值表现的四个方面
  18. Hadoop Namenode元数据文件 Fsimage、editlog、seen_txid说明
  19. Linux kail环境下安装pyrit 问题详解
  20. SQL 中INSERT INTO 的使用方法

热门文章

  1. Flowable工作流(flowable 数据库表结构)
  2. 互联网公司干不好上门维修?
  3. 美国高等教育信息素养能力标准
  4. python-docx 复制一页_python 怎么用docx读取word的某一页然后放到新的word文档中?...
  5. 文档服务器拓扑图,服务器网络结构拓扑图
  6. 研大考研:2015考研政治认识论知识点
  7. 568A和568B的线序
  8. hdp ambari Confirm Hosts 部署错误问题
  9. FYI| Free online events
  10. DDos/DoS工具集(持续更新)