NIMSDK-AOS  9.19.10
AuthService.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.auth;
2 
3 import com.netease.nimlib.apt.annotation.NIMService;
7 
8 /**
9  * 用户认证服务接口,提供用户登录登出等业务接口。
10  */
11 @NIMService("用户认证服务")
12 public interface AuthService {
13 
14  /**
15  * 登录 IM。调用该接口后,SDK 会自动连接服务器,传递用户信息,返回登录结果。<br>
16  * 登录过程中可调用 {@link AbortableFuture#abort()} 接口主动取消登录。如果因为网络或其他原因导致云信服务端长时间未响应,用户也没有主动取消登录,NIM SDK 将在 45 秒后自动重新连接云信服务端,跟踪接口 {@link AbortableFuture} 的 onFailed 会被调用,返回错误码。
17  * @par 使用场景:
18  * <ul><li>在新设备上首次登录 IM</li><li>同时在线的其他设备踢下线后再次登录 IM</li><li>切换 IM 账号后再次登录 IM</li><li>注销登录后再次登录 IM</li></ul>
19  * @par 使用建议:
20  * 调用该接口成功后,建议将 accid 和 token 保存到本地,方便下次应用启动进行初始化时,在 SDKOptions#LoginInfo 中传入,实现自动登录。
21  * @par 参数说明:
22  * info 登录的用户信息
23  * @par 返回:
24  * 若通过 InvocationFuture 设置了回调函数,则返回监听结果({@link com.netease.nimlib.sdk.RequestCallback})
25  * @par 相关错误码:
26  * 302:App Key、accid和token三者不对应<br>
27  * 408:连接超时<br>
28  * 415:网络断开或者连接云信服务端失败<br>
29  * 416:调用频次过高<br>
30  * 1000:本地数据库未打开。请在手动登录成功后打开本地数据库
31  *
32  */
33  public AbortableFuture<LoginInfo> login(LoginInfo info);
34 
35  /**
36  * 注销 IM 登录。该方法没有回调。
37  * @par 使用场景:
38  * 一般情况下,如果您的应用生命周期跟 NIM SDK 生命周期一致,用户在退出应用前可以不注销,直接退出即可。<br>
39  * 但是,如果用户仅在进入特定界面后才使用 NIM SDK 的能力,退出界面后不再使用,此时需要调用 NIM SDK 的登出接口注销 IM 登录。 登出后,用户将不再接收 IM 的消息。
40  * @par 使用限制:
41  * <ul><li>请不要在 Activity(Fragment) 的 onDestroy 调用 logout 方法。</li><li>建议不要频繁调用登录、登出方法,调用 logout 方法后,如需再调用 login 方法,其间隔至少要大于 3s。</li></ul>
42  */
43  public void logout();
44 
45  /**
46  * 注销接口,完成后回调通知
47  *
48  * @par 参数说明:
49  * timeout 登出允许最大等待时间,单位毫秒。如 3 * 1000L
50  * @par 返回:
51  * InvocationFuture 可设置回调函数,监听操作结果。
52  */
53  public InvocationFuture<Void> logout(long timeout);
54 
55  /**
56  * 主动将同时在线的其他客户端踢下线。<br>
57  * 被踢端若注册了 {@link AuthServiceObserver#observeOnlineStatus(Observer, boolean)} 观察者,在被踢下线后,会收到登录状态回调(KICK_BY_OTHER_CLIENT)。如需要重新登录,建议先注销登录(logout),再切换到登录界面进行登录。
58  *
59  * @par 参数说明:
60  * client 被踢下线的客户端信息
61  * @par 返回:
62  * 若通过 InvocationFuture 设置了回调函数,则返回监听结果({@link com.netease.nimlib.sdk.RequestCallback})
63  */
64  public InvocationFuture<Void> kickOtherClient(OnlineClient client);
65 
66  /**
67  * 获取踢掉“我”的客户端类型。
68  * @par 使用场景:
69  * 如果自己被其他同时在线的客户端踢掉, 通过该接口可以获取踢掉“我”的客户端类型。
70  * @par 注意事项:
71  * 如果“我”的当前登录状态({@link com.netease.nimlib.sdk.StatusCode})不是被其他端踢出(KICK_BY_OTHER_CLIENT),则该接口返回值无效。返回值无效的场景可能是:被服务端禁用并踢出 、自动登录监听返回 417 错误码等。
72  * @par 返回:
73  * 踢掉“我”的客户端类型
74  */
75  public int getKickedClientType();
76 
77  /**
78  * 获取踢掉“我”的客户端自定义类型。
79  * @par 使用场景:
80  * 如果自己被其他同时在线的**自定义客户端**踢掉, 通过该接口可以获取踢掉“我”的客户端自定义类型。
81  * @par 注意事项:
82  * <ul><li>用户只有在 {@link AuthService#login(LoginInfo)} 时自定义了 ClientType,才能通过该接口查询到</li><li>如果“我”的当前登录状态({@link com.netease.nimlib.sdk.StatusCode})不是被其他端踢出(KICK_BY_OTHER_CLIENT),则该接口返回值无效。返回值无效的场景可能是:被服务端禁用并踢出 、自动登录监听返回 417 错误码等。</li></ul>
83  * @par 返回:
84  * 踢掉“我”的客户端自定义类型
85  */
86  public int getKickedCustomClientType();
87 
88  /**
89  * 离线时打开本地数据。
90  * @par 使用场景:
91  * 在手动登录没有成功前(可能由于网络问题,登录时间较长),需要访问 SDK 本地数据(本地用户信息,本地历史消息等数据)。可以通过本接口实现上述场景。
92  * @par 注意事项:
93  * 采用自动登录方式登录 IM,实际也使用了该功能,也能达到同样的效果。即如果已使用自动登录方式登录 IM,不用单独调用 openLocalCache 接口,在离线时也能访问本地数据。
94  * @par 返回:
95  * 是否成功打开 SDK 本地数据
96  */
97  public boolean openLocalCache(String account);
98 
99 
100  /**
101  * 获取登录时传给服务端的设备 ID。用于标识当前的终端设备。
102  * @par 注意事项:
103  * 此处返回的设备 ID 并不是真正意义上的设备 ID ,而是生成的随机 uuid 。如果应用卸载重装,可能会重新生成设备 ID。
104  * @par 返回:
105  * deviceID:生成的随机 uuid
106  *
107  */
108  public String getDeviceID();
109 
110  /**
111  * 杀死当前 UI 页面。
112  */
113  public void killUI();
114 
115  /**
116  * 杀死其他进程。
117  */
118  public void killCore();
119 
120  /**
121  * 终止当前用户的认证服务,即结束当前进程。
122  */
123  public void exit();
124 }
可中断操作的调用跟踪接口。
多端同时登录时,其他在线的客户端的信息。
用户登录认证信息。
Definition: LoginInfo.java:23
用户认证服务接口,提供用户登录登出等业务接口。