search
开发文档
开发文档/应用开发/服务能力/一键登录/客户端接入指南
客户端接入指南更新时间:2026-03-05 14:48:02

一、使用说明

基于Oauth 2.0协议,提供基于系统小米账号的一键登录、授权登录能力

二、开发流程

三、使用约束

国内小米设备、最低支持Android 11

四、开发步骤

1、添加 App Id 和构建版本 Debug 标识

在应用的 AndroidManifest.xml 中添加 meta-data 配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>

<meta-data
android:name="com.xiaomi.xms.APP_ID"
android:value="your app id here" />

<meta-data
android:name="com.xiaomi.xms.BUILD_TYPE_DEBUG"
android:value="true or false" />

</application>
</manifest>

App Id
com.xiaomi.xms.APP_ID
当开通服务时,会生成 App Id 唯一标识,用于鉴权
必须配置 App Id,调用服务时会通过 App Id 进行鉴权
构建版本 Debug 标识
com.xiaomi.xms.BUILD_TYPE_DEBUG
当前 APK 是否为 Debug 构建版本。若不配置,默认为 false
鉴权时会验证应用 apk 签名。开发调试阶段,一般不会运行 Release 签名的 apk,通常都是运行 Debug 签名 apk,为了保证在开发阶段仍然可以鉴权成功,开发者可以在平台同时添加正式证书指纹(Release 签名)和测试证书指纹(Debug 签名),用于不同场景下鉴权。

五、接口说明/API参考文档/调用方式说明

说明:每个接口有一个示例(处理完整,包括传参、正确和错误的返回值、打印等)

1、API接口文档

(1)接口概述

入口类:com.xiaomi.ecosys.account.MiAccount

接口名称接口含义接口参数返回参数回调函数调用时机是否必须调用
login小米账号一键登录
小米账号授权登录
Activity:当前前台Activity
OAuthQuickLoginParam:登录参数,具体含义请查看结构体介绍部分
LoginCallback:登录回调接口
onSuccess 登录完成
authCode:授权码,使用授权码前往小米账号服务端获取用户信息
state:透传字段
nonce:透传字段
onCancel 登录取消
onLoginOther
onFail
errorCode:一级错误码,具体含义请参考SDK错误码部分
subErrorCode:二级错误码,具体含义请参考SDK错误码部分
errorMsg:异常信息
subErrMessage:异常信息
同意隐私协议前提下,用户发起登录时
checkLoginSupport校验登录环境Activity:当前前台Activity
bizType:应用类型
0:APK应用
1:RPK快应用
loginType:登录方式
1:小米账号一键登录
2:授权登录
是否支持同意隐私协议后前提下,发起登录之前

主要结构体

OAuthQuickLoginParam
参数名称类型必选说明
loginTypeint登录方式
1:小米账号一键登录
2:授权登录
clientIdString应用唯一标识,小米开放平台中注册应用后可直接获取
stateString透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
nonceString透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
phoneValidbooleanfalse:无需小米账号验证手机号有效性
true:需要小米账号验证手机号有效性,如用户90天未触达过绑定手机号,此时小米账号进行手机号短信验证
默认值 true
privacyUrlString隐私政策链接地址
privacyTextString隐私政策文案
userAgreementTextString用户协议文案
userAgreementUrlString用户协议链接地址
showOtherLoginBtnboolean是否显示其他登录方式按钮
默认true
finishAfterClickOtherLoginBtnboolean点击其他登录方式按钮后是否自动关闭小米账号登录页面
默认true
bizTypeint应用类型,默认0 0:APK应用,1:快应用
packageNameString快应用包名,APK应用无需指定

(2)API接口明细

1. 校验登录环境


boolean loginSupport = MiAccount.getInstance().checkLoginSupport(this, 0);

2. 一键登录

// 登录回调
private final LoginCallback callback = new LoginCallback() {
@Override
public void onSuccess(String authCode, String state, String nonce) {
//登录完成
}

@Override
public void onCancel() {
//登录取消
}

@Override
public void onLoginOther() {
//其他登录方式
}

@Override
public void onFail(int errorCode, int subErrorCode, String errorMsg, String subErrMessage) {
//登录失败
}
};

//一键登录
public void quickLoginWithPhone() {
OAuthQuickLoginParam quickLoginParam = new OAuthQuickLoginParam.Builder()
.clientId("28xxxxxxxxx") //小米开放平台中注册应用后可直接获取
.loginType(1) // 登录方式,1:小米账号一键登录;2:授权登录
.state("xxxxx") //透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
.nonce("xxxxxxx") //透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
.privacyUrl("https://XXXX.com/XXXXX/") // 隐私政策链接地址
.privacyText("XXXXX隐私协议") // 隐私政策文案
.userAgreementUrl("https://XXXX.com/XXXXXX") //用户协议链接地址
.userAgreementText("XXXX用户协议") //用户协议文案
.build();
MiAccount.getInstance().login(this, quickLoginParam, callback);
}

3. 授权登录

// 登录回调
private final LoginCallback callback = new LoginCallback() {
@Override
public void onSuccess(String authCode, String state, String nonce) {
//登录完成
}

@Override
public void onCancel() {
//登录取消
}

@Override
public void onLoginOther() {
//其他登录方式
}

@Override
public void onFail(int errorCode, int subErrorCode, String errorMsg, String subErrMessage) {
//登录失败
}
};

//一键登录
public void quickLoginWithPhone() {
OAuthQuickLoginParam quickLoginParam = new OAuthQuickLoginParam.Builder()
.clientId("28xxxxxxxxx") //小米开放平台中注册应用后可直接获取
.loginType(2) // 登录方式,1:小米账号一键登录;2:授权登录
.state("xxxxx") //透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
.nonce("xxxxxxx") //透传字段 开发者可自定义,字符包含0-9、a-z、A-Z、点号、冒号、斜杠、下划线等,长度限制1-255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$
.privacyUrl("https://XXXX.com/XXXXX/") // 隐私政策链接地址,必填
.privacyText("XXXXX隐私协议") // 隐私政策文案,必填
.userAgreementUrl("https://XXXX.com/XXXXXX") //用户协议链接地址,必填
.userAgreementText("XXXX用户协议") //用户协议文案,必填
.build();
MiAccount.getInstance().login(this, quickLoginParam, callback);
}

2、错误码

一级错误码二级错误码错误码含义建议的处理方式
-1000-参数异常校验参数
-100110000参数错误用户点击后重新尝试发起
10001应用未申请一键登录权限引导用户通过其他方式登录
10002账号登录态失效用户点击后重新尝试发起
10003服务端错误用户点击后重新尝试发起
10004不支持该操作引导用户通过其他方式登录
10005非法的登录方式引导用户通过其他方式登录
10006用户未登录小米系统账号引导用户通过其他方式登录
10007海外ROM不支持引导用户通过其他方式登录
10008未设置锁屏引导用户通过其他方式登录
10009已发起的流程中账号发生变化用户点击后重新尝试发起
-1002-用户取消登录(当前页面已关闭)用户点击后重新尝试发起
-1003-不支持的设备引导用户通过其他方式登录
-1004-链接小米账号App失败用户点击后重新尝试发起
-10051跨进程请求异常-DeadObjectException,小米账号进程被杀用户点击后重新尝试发起
2跨进程请求异常-RemoteException,小米账号进程内异常
3跨进程请求异常-其他Exception,小米账号进程内异常
-1006-1小米账号内部异常用户点击后重新尝试发起
10000参数错误用户点击后重新尝试发起
10001应用未申请一键登录权限引导用户通过其他方式登录
10002账号登录态失效用户点击后重新尝试发起
10003服务端错误用户点击后重新尝试发起
10004不支持该操作引导用户通过其他方式登录
10005非法的登录方式引导用户通过其他方式登录
10006用户未登录小米系统账号引导用户通过其他方式登录
10007海外ROM不支持引导用户通过其他方式登录
10008未设置锁屏引导用户通过其他方式登录
10009已发起的流程中账号发生变化用户点击后重新尝试发起
30002非法的一键登录intent用户点击后重新尝试发起
30003用户未完成登录用户点击后重新尝试发起
30004当前账号不支持手机号登录引导用户通过其他方式登录
30005没有权限取消一键登录引导用户通过其他方式登录
-1007-上次登录未完成用户点击后重新尝试发起
-1008-1小米账号版本不支持引导用户通过其他方式登录
-2XMSF版本不支持引导用户通过其他方式登录
-1009-跨进程调用小米账号异常引导用户通过其他方式登录

凡泰&快应用客户端接入指南

上一篇:开发准备
下一篇:服务端接入指南
文档内容是否有帮助?
有帮助
无帮助