android 小米盒子开发,接小米盒子Android SDK
大家好,我叫紅定義,最幾天接入小米盒子的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相关推荐
- 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...
Android 7.0系统已经陆续推送,今天小米5手机的Android 7.0终于公测了,虽然只限于开发版,但是小伙伴们总算有盼头了!小米5开发版怎么升级Android 7.0?下面小编为大家带来小米 ...
- 实现Android底层驱动开发并裁剪定制Android操作系统
毕业论文 题 目实现Android底层驱动开发并裁剪定制Android操作系统 学 院电子信息与电气工程学院 姓 名牛xxx民 专 业电子信息科学与技术 学 号2012xxxxxx ...
- 小米9开发版已开启Android,小米9 MIUI安卓10开发版已开始推送,建议大家不要去升级...
近期,有小米9用户接到了安卓10的开发版更新,此前Android Q开发版一直在内测中,并没有说明何时结束,这次意外接到系统更新,还是让人有点惊讶的,已经有不少用户更新了该系统.接下来,我们一起来看看 ...
- 记一次Android全流程开发体验经历以及Android Studio使用【从环境搭建到项目打包发布 + 真实踩坑总结】
前言 临时安排接手一个 Android 应用项目开发,庆幸的是 Android APP 已经开发完成,我只需要在我的电脑上运行起来打包看一下效果即可,但是对于一个从未接触过安卓开发的我来说真的是费尽脑 ...
- 小米6Android8开发版,小米6安卓8.0系统来了 MIUI论坛开启内测招募
站长之家(ChinaZ.com) 11 月 29 日消息:谷歌发布Android 8. 0 已经有一段时间了,不过从之前的统计数据来看占有率还很低,很多厂商除了新机外还很少有计划升级的,目前来看占有率 ...
- android另类工具,[置顶] android应用程序开发另解及Android SDK工具集的另类用法
转载请注明出处: LouisWang http://blog.csdn.net/louiswangbing/article/details/6606865 相信对于广大Android应用开发爱好者来说 ...
- android 添加ga_android开发步步为营之70:android接入Google Analytics总结
求人不如求己,今天项目里要接入Google Analytics,这个是做应用统计分析用的,可以查看当前手机活跃用户,事件点击等等数据,先看看效果: 之前eclipse里面接入已经成功,昨天项目组决定项 ...
- Android NDK jni开发,适当的给Android 代码加密
为什么使用ndk开发了,就是 稍微将代码隐藏一下..Android 虽然打包能混淆,但是有些东西是不能混淆的,如下图,压缩密码把直勾勾的下载代码中.下面手把手稍微优化下. 將操作密码的部分我们通过 j ...
- Android学习1——开发环境搭建、Android Studio安装
一.目的 1.掌握 Android 开发环境搭建方法 2.掌握 Android 项目建立方法 3.掌握 Gitee 账号建立及其使用方法 4.掌握 Android 模拟器使用方法 二.实验环境 1.J ...
- android系统nfc开发,GitHub - hanjie511/MyNFC: android的NFC开发入门
MyNFC android的NFC开发入门 NFC简述 近距离无线通信 (NFC) 是一组近距离无线技术,通常只有在距离不超过 4 厘米时才能启动连接.借助 NFC,您可以在 NFC 标签与 Andr ...
最新文章
- SQLServer怎样把本地数据导入到远程服务器上(转载)
- linux内核网络协议栈--linux网络设备理解(十三)
- sublime Text3 设置多个浏览器预览
- 火星人敏捷开发手册 原10.31版本已于10.14提前发布,特此通知
- 实现3d图片移动_「3D建模」什么是动画和角色设计的3D索具?
- 20应用统计考研复试要点(part25)--简答题
- python获取设备硬件信息_Python实现读取机器硬件信息的方法示例
- php后端mysql,【后端开发】PHP如何处理MySQL死连接
- 8.对Hello World程序的深入
- java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
- cmake 交叉编译_如何使用CMake编译RTT微内核
- JavaScript之jQuery
- 三大有限元分析软件(ABAQUS、ANSYS、MSC)的优缺点是什么?应如何选择?
- 宗地图绘制要求和规范_国内土地市场宗地图的绘制标准制图规范-【领仕网】...
- 2021-11-10全球货币市场基础知识系列3
- 洪水填充算法_优化洪水相似算法(渗流理论)
- 项目管理:目标的价值表现的四个方面
- Hadoop Namenode元数据文件 Fsimage、editlog、seen_txid说明
- Linux kail环境下安装pyrit 问题详解
- SQL 中INSERT INTO 的使用方法