小米 sdk接入主要就注意2点: 登陆 和 支付
其他一些别的操作可以让u3d来做如(切换 退出等)
那么我们现在就说一下小米的登陆
小米的登陆 我们直接让游戏调用login接口就好 里面的具体操作我们android做些处理就好
public void login() {MiCommplatform.getInstance().miLogin(MainActivity.this,MainActivity.this);}
然后就是登陆一些回调 通知游戏
public void finishLoginProcess(int arg0, MiAccountInfo arg1) {JSONObject obj=new JSONObject();switch( arg0 ){case MiErrorCode.MI_XIAOMI_PAYMENT_SUCCESS://登陆成功//获取用户的登陆后的UID(即用户唯一标识)long uid = arg1.getUid();//获取用户的登陆的Session(请参考[5.3.3流程校验Session有效性](#8))String session = arg1.getSessionId();try {obj.put("status", 0);//status 为0表示成功,100表示登录失败,200表示取消登陆,300表示登录操作正在进行中,500 表示返回的信息其他 均是登录失败obj.put("uid",uid);obj.put("session", session);} catch (JSONException e) {// TODO Auto-generated catch block//e.printStackTrace();}break;case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_LOGIN_FAIL:// 登陆失败try {obj.put("status", 100);//status 为0表示成功,100表示登录失败,200表示取消登陆,300表示登录操作正在进行中,500 表示返回的信息其他 均是登录失败} catch (JSONException e) {// TODO Auto-generated catch block//e.printStackTrace();}break;case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_CANCEL:// 取消登录try {obj.put("status", 200);//status 为0表示成功,100表示登录失败,200表示取消登陆,300表示登录操作正在进行中,500 表示返回的信息其他 均是登录失败} catch (JSONException e) {// TODO Auto-generated catch block//e.printStackTrace();}break;case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_ACTION_EXECUTED: //登录操作正在进行中try {obj.put("status", 300);//status 为0表示成功,100表示登录失败,200表示取消登陆,300表示登录操作正在进行中,500 表示返回的信息其他 均是登录失败} catch (JSONException e) {// TODO Auto-generated catch block//e.printStackTrace();}break; default:// 登录失败try {obj.put("status", 500);//status 为0表示成功,100表示登录失败,200表示取消登陆,300表示登录操作正在进行中,500 表示返回的信息其他 均是登录失败} catch (JSONException e) {// TODO Auto-generated catch block//e.printStackTrace();}break;}UnityPlayer.UnitySendMessage("xx", "xx",obj.toString());}
登陆完成
下面支付的更简单,我们直接调用pay,然后让游戏中的参数一一和android中的参数一一对应就好
public void pay(String xx, int xx,String xx,String xx,String xx,String xx,String xx,String xx,String xx) {Log.d("Unity","##--MiSDK.Jar pay start--##");final MiBuyInfo miBuyInfo= new MiBuyInfo();miBuyInfo.setCpOrderId(UUID.randomUUID().toString());//订单号唯一(不为空)miBuyInfo.setCpUserInfo(xx); //此参数在用户支付成功后会透传给CP的服务器if(m_pay<0){return;}miBuyInfo.setAmount(xx); //必须是大于1的整数,10代表10米币,即10元人民币(不为空)Bundle mBundle = new Bundle();mBundle.putString( GameInfoField.GAME_USER_BALANCE, xx); //用户余额mBundle.putString( GameInfoField.GAME_USER_GAMER_VIP, xx); //vip等级mBundle.putString( GameInfoField.GAME_USER_LV, xx); //角色等级mBundle.putString( GameInfoField.GAME_USER_PARTY_NAME, xx); //工会,帮派mBundle.putString( GameInfoField.GAME_USER_ROLE_NAME, xx); //角色名称mBundle.putString( GameInfoField.GAME_USER_ROLEID, xx); //角色idmBundle.putString( GameInfoField.GAME_USER_SERVER_NAME, xx); //所在服务器miBuyInfo.setExtraInfo( mBundle ); //设置用户信息MiCommplatform.getInstance().miUniPay(MainActivity.this, miBuyInfo, MainActivity.this);}
完成支付
登陆和支付完成 那么这个接入也相当于做好了,然后进行测试 即可