魅族SDK接入

news/2024/11/29 13:53:02/

今天老大让我接魅族的SDK,拿过资料后我大概扫视了一下接入手册,基本上都是一个套路.所以就没有再细看了.

我拿到手的就是

第一个不我想不用我说你们都知道是什么了,它就是魅族的jar了,需要放入U3D工程里面和你所做的JAR插件里面,然后第二个就是一个魅族的框架程序,魅族有个操蛋的地方就是要使用它的SDK就必须安装这个框架程序.刚开始因为没有注意文档上的说明 ,没有把他放到assets目录下导致使用不了魅族SDK,登录框直接调用不起来,然后放入后,当你安装你的游戏后启动后会提升你安装魅族框架类,然后它就会去找那个APK文件自动安装了.

后面那个压缩包就是他们的DEMO了,我是比较热衷于看DEMO的因为我觉得DEMO里面包括了你想知道的所有东西.所以当我扫视完文档后我直接就打开了它们的程序,发现里面的结构还是很清晰简单的.用eclipse 打开后编译了一个APK出来后安装在手机里面运行了一下,我接SDK有个特点就是我首先要保证它们给的DEMO是可以运行的,并且出于好奇心我也想看看它们的界面和功能是怎样的.所以迫不及待的就安装运行了,发现 上面就一个登录  和支付按钮.然后按是直接弹出登录框,支付是支付选项.然后我看了一下代码的结构 发现它的初始化写在了Application里面,调用是写在了主Activity里面.

然后我就按照他的结构在我的JAR里面继承自APPlication的类里面

初始化了魅族的 平台的SDK

// TODO 游戏初始化时,初始化参数
MzGameCenterPlatform.init(this, GAME_ID, GAME_KEY);

首先 GAME_ID和GAME_KEY是你申请SDK是魅族提供给你的.demo上面这2个参数的定义是写在另一个类中的,我觉得完全没有必要我就直接写在了我初始化的地方了.

然后我在我的JAR里面创建了一个新的类用来专门调用魅族SDK的登录和支付,首先是魅族悬浮窗的实例化  可在主Activity初始化时调用

mzGameBarPlatform = new MzGameBarPlatform(this, MzGameBarPlatform.GRAVITY_RIGHT_BOTTOM);

然后是 定义一个魅族登录的函数  直接按照demo那样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void login(){
  // TODO 调用登录接口
  MzGameCenterPlatform.login(MainActivity.this, new MzLoginListener() {
  @Override
  public void onLoginResult(int code, MzAccountInfo accountInfo, String errorMsg) {
  // TODO 登录结果回调,该回调跑在应用主线程
  switch (code){
  case LoginResultCode.LOGIN_SUCCESS:
  // TODO 登录成功,拿到uid 和 session到自己的服务器去校验session合法性
//以下信息需要在U3D中登录使用;
  //displayMsg("登录成功!\r\n 用户名:" + accountInfo.getName() + "\r\n Uid:" + accountInfo.getUid() + "\r\n session:" + accountInfo.getSession());
  UnityPlayer.UnitySendMessage(_objectName,_methodName, "登录成功@" +mUid+ "@" +accountInfo.getSession());
  break ;
  case LoginResultCode.LOGIN_ERROR_CANCEL:
  // TODO 用户取消登陆操作
  break ;
  default :
  // TODO 登陆失败,包含错误码和错误消息。
  // TODO 注意,错误消息需要由游戏展示给用户,错误码可以打印,供调试使用
  displayMsg( "登录失败 : " + errorMsg + " , code = " + code);
  break ;
  }
  }
  });
  }

需要注意的是 当你调用登录框并且成功登录魅族的时候 这个时候你需要把魅族的账户密码返回到游戏中然后再登录游戏这样才算是从魅族的登录窗口登录你的游戏了 所以 UnityPlayer.UnitySendMessage(_objectName,_methodName,"登录成功@"+mUid+"@"+accountInfo.getSession());   这一句是很重要的 这个函数方法的意思是 返回给U3D的东西,第一个参数是 返回给U3D的对象名,这个对象名称其实就是当你调用SDK时 从U3D中传过来的,现在就是要把从U3D中传过来的东西再传回去,第二个是U3D中传过来的方法名称 这个名称是当U3D收到SDK返回的信息 时就调用这个函数方法然后最后一个字符串参数就是这个方法的参数,由于我要得到多个参数,所以我使用了@符号做分割返回到U3D时我再解析出来然后用来在游戏中注册账户.比如我使用了魅族的UID和它的Session作为游戏的账号和密码.

然后剩下的支付也是一样的意思 直接复制DEMO上的代码往上贴,但是需要注意的是有些函数在U3D中是不支持的比如

progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("请稍等...");
progressDialog.setCancelable(true);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();

这么一段在U3D中就会报错,可能我没有引入相应的类库吧.所以当时我把它删除了因为我发现它并没有什么卵用.做后就是 需要在你支付成功或失败的地方 返回给U3D一个信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre>
private void startPay(MzBuyInfo buyInfo){
MzGameCenterPlatform.payOnline(activity, buyInfo, new MzPayListener() {
  @Override
  public void onPayResult(int code, MzBuyInfo info, String errorMsg) {
  // TODO 支付结果回调,该回调跑在应用主线程
  switch (code){
  case PayResultCode.PAY_SUCCESS:
  // TODO 如果成功,接下去需要到自己的服务器查询订单结果
  //displayMsg("支付成功 : " + info.getOrderId());
  UnityPlayer.UnitySendMessage(_objectName, _methodName, "支付成功" );
  break ;
  case PayResultCode.PAY_ERROR_CANCEL:
  // TODO 用户取消支付操作
  UnityPlayer.UnitySendMessage(_objectName, _methodName, "支付取消" );
  break ;
  default :
  // TODO 支付失败,包含错误码和错误消息。
  // TODO 注意,错误消息需要由游戏展示给用户,错误码可以打印,供调试使用
//displayMsg("支付失败 : " + errorMsg + " , code = " + code);
  UnityPlayer.UnitySendMessage(_objectName, _methodName, "支付失败" + errorMsg + " , code = " + code);
  break ;
  }
  }
  });
  }

最后我把我接入成功的 图片给大家看欣赏一下,如果有什么问题可以加我QQ哦


http://www.ppmy.cn/news/431036.html

相关文章

关闭数字健康 android 魅族,数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享...

数字体验 篇二十八&#xff1a;精雕细刻&#xff0c;只为给魅友更好的选择&#xff0c;魅族16s Pro体验分享 2019-09-06 17:31:22 14点赞 10收藏 15评论 当我还一直在称赞魅族16s所拥有的舒适手感表现时&#xff0c;魅族却已经给我们带来了魅族16s Pro。不过&#xff0c;Pro并非…

关闭数字健康 android 魅族,魅族Flyme数字健康,手机使用情况尽收眼底,还能限制使用...

各位观众朋友们&#xff0c;又到了扒一扒Flyme系统实用性功能的时刻了。 伴随着优美的旋律&#xff0c;欢快的节拍&#xff0c;大家跟我一起来&#xff01; 当然........ 音乐是没有的&#xff0c;但是干货满满的。 接下跟着我一起来看看今天的重点功能&#xff0c; Flyme数字健…

魅族16th系统更新服务器异常,魅族16th迎来新系统更新:修复Bug 加入暗光面部解锁...

当前&#xff0c;魅族旗下的年度旗舰机型就当属魅族16th和魅族16th Plus了&#xff0c;而现在&#xff0c;魅族Flyme 7体验版发布了更新&#xff0c;新版本为魅族16th修复了很多常见Bug&#xff0c;同时对部分功能进行了优化调整。最为可喜的是&#xff0c;新版本调整了面部识别…

魅族android os是什么,基于安卓5.0:新版魅族Flyme OS初体验

上月底开始&#xff0c;魅族开启了Flyme Powered by Android 5.0版本的测试工作&#xff0c;首先适配的是MX4 Pro&#xff0c;经过几个版本的极小范围内测之后&#xff0c;近日终于进入A轮内测阶段。我们有幸拿到了系统包&#xff0c;提前体验了这个测试版系统。 首先简单罗列一…

魅族系统如何关闭系统推送服务器,如何关闭魅族Flyme系统通知栏推送的广告?...

关闭魅族Flyme系统通知栏推送的广告&#xff0c;只需以下几个步骤即可关闭。 步骤一&#xff1a;点击“设置”&#xff0c;在设置中点击“新闻资讯”&#xff0c;随后在该设置界面中找到 “精选内容推送”并点击关闭。 步骤二&#xff1a;在设置中点击“游戏中心”随后进入消息…

魅族一直显示无服务器,魅族手机用久了卡顿,这三个方法轻松解决

哈喽小伙伴们大家好~我是节奏君~ 有看节奏君视频的朋友&#xff0c;肯定也知道我用的是魅蓝Note5&#xff0c; 这台手机我是过年期间入手的&#xff0c;用了三个月&#xff0c;千元机总体上来说不错。 对于我这种不怎么玩游戏的人来说&#xff0c;这手机也足够了。 魅族的小伙伴…

魅族16t无法点击计算机传输,魅族16T如何打开USB调试模式连接电脑 魅族16T一键开启游戏模式方法教程...

对于魅族官方最新推出的魅族16T手机&#xff0c;很多的用户都非常的喜欢&#xff0c;不少的用户都已经入手购买了&#xff0c;但是对于手机上的操作都不是很熟悉&#xff0c;想要连接电脑就要先打开手机上的USB调试模式&#xff0c;但是具体要怎么操作呢?还有对于这款魅族16T手…

魅族手机sim卡无显示无服务器,【点击查看】非魅族手机如何登Flyme帐号玩游戏?...

原标题&#xff1a;【点击查看】非魅族手机如何登Flyme帐号玩游戏&#xff1f; 不是魅族的手机可不可以使用Flyme账号登录游戏&#xff1f;在电脑上怎样用Flyme帐号登录游戏&#xff1f; 这些问题应该很多的魅友都碰到过&#xff0c;但是可以解决的问题都不是问题&#xff0c;今…