应用在多次使用accessToken访问网关服务器返回accessToken失效时,可调用此接口通过注销授权的方式清除HMS SDK缓存。
在华为帐号登录授权时,应用为了更高的安全性,需要使用signIn接口返回的accessToken访问网关服务器获取用户的唯一标识。如果网关服务器返回accessToken失效(NSP_STATUS=6),应用需要重新调用signIn接口获取新的accessToken,并再次访问网关服务器。如果仍然返回accessToken失效,此时应用可以尝试调用signOut接口通过注销授权的方式清除HMS SDK的缓存,然后再次重新获取accessToken。
调用本接口前,必须已经提前为应用申请华为帐号服务,参见申请帐号服务。
HMSAgent.Hwid.signOut(SignOutHandler handler) ;
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| handler | M | SignOutHandler | 接口调用后的回调结果,通过此回调实例回调给应用。回调结果中包含的具体参数参见结果回调。 |
- public interface SignOutHandler {
- /**
- *登出结果回调
- * @param rtnCode结果码
- * @param signOutResult登出结果
- */
- void onResult(int rtnCode, SignOutResult signOutResult);
- }
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| rtnCode | M | int | 回调结果中接口调用结果的返回码,应用可以根据返回码判断结果是否成功或失败后如何处理,具体返回码处理参见返回码。 |
| hwidInfo | M | SignOutResult | 接口调用结果的对象信息。 |
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| status | M | Status | 包含业务返回码的对象,可通过status.getStatusCode()获取返回码,具体返回码请参见返回码的“业务返回码”。 当有业务返回码时,HMS SDK会将此值赋值给rtnCode,应用获取rtnCode中的返回码即可。 |
| 类型 | 返回码常量 | 返回码值 | 返回码说明 | 处理建议 |
|---|---|---|---|---|
| 通用返回码 | 参见通用返回码。 | |||
| 业务返回码 | AuthCode.StatusCode.OK | 0 | 成功。 | |
- private voidsignOut(){
- HMSAgent.Hwid.signOut(newSignOutHandler() {
- @Override
- public voidonResult(intrtnCode, SignOutResult signOutResult) {
- if(rtnCode == HMSAgent.AgentResultCode.HMSAGENT_SUCCESS&& signOutResult !=null) {
- showLog("SignOut successful");
- }else{
- showLog("SignOut fail:"+ rtnCode);
- }
- }
- });
- }