目录

1. 接口定义

  1. HMSAgent.Hwid.signIn(boolean forceLogin, SignInHandler handler)

2. 接口描述

登录华为帐号,并获取帐号相关信息:昵称、openid、头像地址等。HMS SDK 2.6.1.300以及更高版本提供获取UnionId的能力。

3. 参数

参数名参数类型是否必填说明
forceLoginboolean是是否强制登录。
● True:如果华为帐号未登录会拉起登录界面,如果未授权会拉起授权界面
● False:如果已经登录授权直接返回帐号信息,否则返回失败错误码
handlerSignInHandler是登录结果通过此实例回调给调用方。


4. 结果回调

  1. public interface SignInHandler {
  2.    /**
  3.     * 登录结果回调
  4.     * @param rtnCode 结果码
  5.     * @param hwidInfo 登录结果
  6.     */
  7.    void onResult(int rtnCode, SignInHuaweiId hwidInfo);
  8. }

回调参数包括retCode和hwidInfo,retCode是登录结果的错误码,融合了各个阶段的错误码,如果只需要判断错误码可直接使用。retCode取值和意义如表4-1所示。

表4-1 retCode说明

类型返回码值意义处理方式
  通用错误码参见“通用错误码”。
  业务错误码HuaweiIdStatusCodes.SIGN_IN_SUCCESS0登录授权成功
HuaweiIdStatusCodes.SIGN_IN_AUTH2002业务需要授权
HwIDConstant.RETCODE.SIGN_IN_PARAMS_ERROR2003请求授权,参数错误
HuaweiIdStatusCodes.SIGN_IN_NETWORK_ERROR2005帐号在授权的过程中,发生网络超时等网络错误检查网络后重试

hwidInfo是SignInHuaweiId的实例,包含了登录结果信息,SignInHuaweiId各字段意义如表4-2所示。

表4-2 SignInHuaweiId说明

参数名获取方式意义
openIdgetOpenId()应用内用户的唯一标识。
disPlayNamegetDisplayName()返回用户昵称,用于在开发者的应用中显示。
photoUrlgetPhotoUrl()如果用户设置了头像,则返回头像的url,否则返回null。
accessTokengetAccessToken()返回用户的access token。access token是有有效期的。业务在调用网关API并获知access_token已超时的情况下(NSP_STATUS=6,网关详细错误列表),请调用signIn,重新获取access token。
unionIdgetUnionId()返回用户的UnionId。获取UnionId需要满足以下条件:
1、应用集成HMS SDK 2.6.1以及更高版本。
2、配套的HMS Core(APK)版本为2.6.1以及更高版本(配置指导请参见“开发准备 >4配置manifest文件”的步骤8 )。
3、应用申请了获取UnionId权限(申请权限操作请参见“UnionId说明”的“2 申请权限”)。
4、UnionId服务器接口以及相关应用迁移等注意事项参见“UnionId说明”。