NIMSDK-AOS 10.4.0-beta
载入中...
搜索中...
未找到
AuthService.java
浏览该文件的文档.
1package com.netease.nimlib.sdk.auth;
2
3import com.netease.nimlib.apt.annotation.NIMService;
4import com.netease.nimlib.sdk.AbortableFuture;
5import com.netease.nimlib.sdk.InvocationFuture;
6import com.netease.nimlib.sdk.Observer;
7
8/**
9 * 用户认证服务接口,提供用户登录登出等业务接口。
10 */
11@NIMService("用户认证服务")
12public 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 */
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 * 主动将同时在线的其他客户端踢下线。<br>
47 * 被踢端若注册了 {@link AuthServiceObserver#observeOnlineStatus(Observer, boolean)} 观察者,在被踢下线后,会收到登录状态回调(KICK_BY_OTHER_CLIENT)。如需要重新登录,建议先注销登录(logout),再切换到登录界面进行登录。
48 *
49 * @par 参数说明:
50 * client 被踢下线的客户端信息
51 * @par 返回:
52 * 若通过 InvocationFuture 设置了回调函数,则返回监听结果({@link com.netease.nimlib.sdk.RequestCallback})
53 */
55
56 /**
57 * 获取踢掉“我”的客户端类型。
58 * @par 使用场景:
59 * 如果自己被其他同时在线的客户端踢掉, 通过该接口可以获取踢掉“我”的客户端类型。
60 * @par 注意事项:
61 * 如果“我”的当前登录状态({@link com.netease.nimlib.sdk.StatusCode})不是被其他端踢出(KICK_BY_OTHER_CLIENT),则该接口返回值无效。返回值无效的场景可能是:被服务端禁用并踢出 、自动登录监听返回 417 错误码等。
62 * @par 返回:
63 * 踢掉“我”的客户端类型
64 */
65 public int getKickedClientType();
66
67 /**
68 * 获取踢掉“我”的客户端自定义类型。
69 * @par 使用场景:
70 * 如果自己被其他同时在线的**自定义客户端**踢掉, 通过该接口可以获取踢掉“我”的客户端自定义类型。
71 * @par 注意事项:
72 * <ul><li>用户只有在 {@link AuthService#login(LoginInfo)} 时自定义了 ClientType,才能通过该接口查询到</li><li>如果“我”的当前登录状态({@link com.netease.nimlib.sdk.StatusCode})不是被其他端踢出(KICK_BY_OTHER_CLIENT),则该接口返回值无效。返回值无效的场景可能是:被服务端禁用并踢出 、自动登录监听返回 417 错误码等。</li></ul>
73 * @par 返回:
74 * 踢掉“我”的客户端自定义类型
75 */
77
78 /**
79 * 离线时打开本地数据。
80 * @par 使用场景:
81 * 在手动登录没有成功前(可能由于网络问题,登录时间较长),需要访问 SDK 本地数据(本地用户信息,本地历史消息等数据)。可以通过本接口实现上述场景。
82 * @par 注意事项:
83 * 采用自动登录方式登录 IM,实际也使用了该功能,也能达到同样的效果。即如果已使用自动登录方式登录 IM,不用单独调用 openLocalCache 接口,在离线时也能访问本地数据。
84 * @par 返回:
85 * 是否成功打开 SDK 本地数据
86 */
87 public boolean openLocalCache(String account);
88
89
90 /**
91 * 获取登录时传给服务端的设备 ID。用于标识当前的终端设备。
92 * @par 注意事项:
93 * 此处返回的设备 ID 并不是真正意义上的设备 ID ,而是生成的随机 uuid 。如果应用卸载重装,可能会重新生成设备 ID。
94 * @par 返回:
95 * deviceID:生成的随机 uuid
96 *
97 */
98 public String getDeviceID();
99
100 /**
101 * 杀死当前 UI 页面。
102 */
103 public void killUI();
104
105 /**
106 * 杀死其他进程。
107 */
108 public void killCore();
109
110 /**
111 * 终止当前用户的认证服务,即结束当前进程。
112 */
113 public void exit();
114}
用户登录认证信息。
Definition: LoginInfo.java:23
可中断操作的调用跟踪接口。
用户认证服务接口,提供用户登录登出等业务接口。
void exit()
终止当前用户的认证服务,即结束当前进程。
AbortableFuture< LoginInfo > login(LoginInfo info)
登录 IM。调用该接口后,SDK 会自动连接服务器,传递用户信息,返回登录结果。 登录过程中可调用 AbortableFuture#abort() 接口主动取消登录。如果因为网络或其他原因导致云信服务...
void killUI()
杀死当前 UI 页面。
int getKickedClientType()
获取踢掉“我”的客户端类型。
void killCore()
杀死其他进程。
int getKickedCustomClientType()
获取踢掉“我”的客户端自定义类型。
boolean openLocalCache(String account)
离线时打开本地数据。
String getDeviceID()
获取登录时传给服务端的设备 ID。用于标识当前的终端设备。
void logout()
注销 IM 登录。该方法没有回调。
InvocationFuture< Void > kickOtherClient(OnlineClient client)
主动将同时在线的其他客户端踢下线。 被踢端若注册了 AuthServiceObserver#observeOnlineStatus(Observer, boolean) 观察者,在被踢下线后,会收到登...
多端同时登录时,其他在线的客户端的信息。