快速开始
1) 预备步骤
去 dev.xiaomi.com 中创建应用。步骤如下:登陆小米开放平台网页 -> ”管理控制台” -> ”手机及平板应用” -> ”创建应用” -> 填入应用名和包名 -> ”创建” -> 记下看到的AppID -> 页面下方找”帐号接入服务“ -> ”详情“ -> ”立即启用“ -> 填入“授权回调地址(URL)”(这里填入的url即是下文提到的redirectUrl) -> “启用“ -> 开启需要的开放接口。
2) 在应用的AndroidManifest.xml里添加以下配置:
3) 授权并获取AccessToken/code
sdk会自行判断:在miui上,启动系统帐号进行授权;非miui上,使用webview登录然后授权
setCustomizedAuthorizeActivityClass()可以自定义非miui上的登录界面,设置actionbar、进度条等,可参照demo中的CustomizedAuthorizedActivity。
XiaomiOAuthFuture future = new XiaomiOAuthorize()
//开发者预先申请好的 AppID
.setAppId(appID)
// 开发者预先申请时填好的 redirectUrl
.setRedirectUrl(redirectUri)
// int数组,可以用XiaomiOAuthConstants.SCOPE_*等常量
.setScope(scope)
// 设置自定义的非miui上登录界面(默认是AuthorizeActivity)
.setCustomizedAuthorizeActivityClass(CustomizedAuthorizedActivity.class)
// 如果是要获得Code的方式,则把startGetAccessToken改成startGetOAuthCode即可。其他相同
.startGetAccessToken(activity);
fastOAuth - 在miui上以对话框方式授权 (可选)
效果:sdk检测miui上用户已经登录系统帐号时,弹出对话框
miui版本支持: 8.2以上。 8.2以下/非miui上 future.getResult()时抛出XMAuthericationException
需已经登录系统账号,否则授权结果xiaomiOAuthResults.getErrorCode()返回错误码-1002
XiaomiOAuthFuture future = new XiaomiOAuthorize()
.setAppId(getAppId())
.setRedirectUrl(getRedirectUri())
.setScope(getScopeFromUi())
.fastOAuth(MainActivity.this, XiaomiOAuthorize.TYPE_TOKEN);
获取授权结果AccessToken/code (在后台线程调用)
// 接下来这一段必须在后台线程调用
try {
XiaomiOAuthResults result = future.getRe