1. 创建项目 2.在Activity中添加两个按钮,“登录”和“充值” 3.在AndroidManifest.xml中添加如下权限 <!-- 这个是SDK需要的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 4.将小米SDK中的MiGameCenterSDKService.apk 放入项目的assets文件夹中,将SDK_TY_3.0.0.jar 放入项目的libs文件夹中 5.在MainActivity.java的onCreate中对SDK进行初始化 //在类中添加如下变量 Button login; Button pay; public static MiAppInfo appInfo; //在onCreate中初始化SDK appInfo = new MiAppInfo(); appInfo.setAppId(2698); //这是测试用Id appInfo.setAppKey("1a45711e-bef6-e2bb-70d9-5044de552c71"); //这是测试用Key appInfo.setAppType(MiGameType.online); appInfo.setPayMode(PayMode.custom); MiCommplatform.Init(this, appInfo); 6.如果使用测试Id和Key,需要更改包名,打开AndroidManifest.xml,更改如下 package="com.example.migamecenrtersdkdemo.online" 7.更改包名后报错,重新引入R即可 8.添加登录按钮响应,调用miLogin,并在MainActivity中添加OnLoginProcessListener接口 //添加OnLoginProcessListener接口 public class MainActivity extends Activity implements OnLoginProcessListener //login按钮响应 login = (Button)findViewById(R.id.button1); login.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { MiCommplatform.getInstance().miLogin(MainActivity.this, MainActivity.this); } }); 9.实现OnLoginProcessListener接口中的finishLoginProcess方法 @Override public void finishLoginProcess(int code, MiAccountInfo arg1) { switch( code ) { case MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS: // 登陆成功 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_LOGIN_FAIL: // 登陆失败 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_CANCEL: // 取消登录 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED: //登录操作正在进行中 break; default: // 登录失败 break; } } 10.运行程序,可以通过小米帐号登录了 11.添加充值,首先初始化订单信息和用户信息 //订单信息 final MiBuyInfoOnline online = new MiBuyInfoOnline(); online.setCpOrderId(UUID.randomUUID().toString()); //订单号唯一(不为空) online.setCpUserInfo( "cpUserInfo" ); //此参数在用户支付成功后会透传给CP的服务器 online.setMiBi( 100 ); //必须是大于1的整数, 10代表10米币,即10元人民币(不为空) //用户信息※必填※ final Bundle mBundle = new Bundle(); mBundle.putString( GameInfoField.GAME_USER_BALANCE, "1000" ); //用户余额 mBundle.putString( GameInfoField.GAME_USER_GAMER_VIP, "vip0" ); //vip 等级 mBundle.putString( GameInfoField.GAME_USER_LV, "20" ); //角色等级 mBundle.putString( GameInfoField.GAME_USER_PARTY_NAME, "猎人" ); //工会,帮派 mBundle.putString( GameInfoField.GAME_USER_ROLE_NAME, "meteor" ); //角色名称 mBundle.putString( GameInfoField.GAME_USER_ROLEID, "123456" ); //角色id mBundle.putString( GameInfoField.GAME_USER_SERVER_NAME, "峡谷" ); //所在服务器 12.添加pay按钮响应 //pay按钮响应 pay = (Button)findViewById(R.id.button2); pay.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { MiCommplatform.getInstance().miUniPayOnline(MainActivity.this, online, mBundle, new OnPayProcessListener(){ @Override public void finishPayProcess(int arg0) { switch(arg0) { case MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS: // 购买成功 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_CANCEL: // 取消购买 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_FAILURE: // 购买失败 break; case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED: //操作正在进行中 break; default : // 购买失败 break; } }}); }}); 13.运行程序,首先登录,然后点击充值,接入成功! https://i-blog.csdnimg.cn/blog_migrate/6e018bbcdff49dbc44d99a35390ea57e.png