NIMSDK-AOS  9.19.10
NIMClient.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk;
2 
3 import android.app.Application;
4 import android.content.Context;
5 import android.util.Log;
6 import com.netease.nimlib.BuildConfig;
7 import com.netease.nimlib.SDKCache;
8 import com.netease.nimlib.SDKState;
9 import com.netease.nimlib.common.infra.Handlers;
10 import com.netease.nimlib.invocation.sync.base.APISyncHelper;
11 import com.netease.nimlib.log.model.LogDesensitizationConfigHelper;
12 import com.netease.nimlib.report.ApiTraceEventManager;
17 import com.netease.nimlib.util.storage.NimStorageUtil;
18 
19 /**
20  * SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
21  */
22 public class NIMClient {
23 
24  public static final String TAG = "NIMClient";
25  /**
26  * [初始化 SDK 方式一] 在 {@link Application#onCreate()} 中调用该方法在应用启动时初始化 SDK。
27  *
28  * @par 使用场景:
29  * 属于常规初始化方式,适用绝大多数的初始化场景。
30  * @par 使用建议:
31  * 建议在 {@link Application#onCreate()} 中添加进程判断,SDK 的初始化方法必须在主进程中调用。不要把业务逻辑写入 core 进程,理论上,core 进程的 {@link Application#onCreate()}(或者 Application 的其他方法)只能做与 NIM SDK 相关的工作。IM 进程启动时也不要初始化第三方库。
32  * @par 调用时机:
33  * 请确保在调用其他 API 前先调用该方法初始化 SDK。
34  * @par 参数说明:
35  * <table>
36  * <tr>
37  * <th>参数名称</th>
38  * <th>描述</th>
39  * </tr>
40  * <tr>
41  * <td>context</td>
42  * <td>调用上下文</td>
43  * </tr>
44  * <tr>
45  * <td>info</td>
46  * <td>手动登录成功的用户信息。如 account(即 accid)和 token<ul><li>如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)</li><li>如果当前还没有登录成功的用户,传入 null,后续可以手动调用 {@link com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo)} 方法进行登录</li></ul></td>
47  * </tr>
48  * <tr>
49  * <td>options</td>
50  * <td>SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等<ul><li>其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,<strong>否则必须传入</strong>,如果两处都设置了,取此处的值</li><li>如果返回值为 null,则全部使用默认参数</li></ul></td>
51  * </tr>
52  * </table>
53  * @par 相关回调:
54  * {@link com.netease.nimlib.sdk.lifecycle.SdkLifecycleObserver#observeMainProcessInitCompleteResult(Observer, boolean)} :初始化进程回调
55  *
56  */
57  public static void init(Context context, LoginInfo info, SDKOptions options) {
58  final long startTime = System.currentTimeMillis();
59  if (LogDesensitizationConfigHelper.printToLogcat(options)) {
60  Log.i(TAG, "NIMClient init");
61  }
62  SDKCache.config(context, info, options);
63 
64  // 老的初始化接口,需要判断进程
65  if (NIMUtil.isMainProcess(context)) {
66  SDKCache.initUI();
67  Handlers.sharedInstance().newMiscHandler().post(() -> {
68  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","init");
69  });
70  }
71  }
72 
73  /**
74  * [初始化 SDK 方式二] 在 {@link Application#onCreate()} 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数同 {@link NIMClient#init(Context, LoginInfo, SDKOptions)}。
75  *
76  * @par 使用场景:
77  * 适用于需要用户授权隐私信息采集的业务场景。与常规初始化 SDK 方式相比,该方式耗时更少,且更适配弱 IM 场景(应用仅需在其部分业务中使用 IM 能力(不需要在应用启动时就做 IM 自动登录),且并不需要保证消息、通知和数据的实时性的场景)。
78  * @par 使用建议:
79  * 该初始化方式一般不再需要做进程判断。
80  * @par 使用限制:
81  * 该接口适用的 SDK 版本:v5.0.0及以上。<br>
82  * {@link NIMClient#config(Context, LoginInfo, SDKOptions)} 方法必须与 {@link NIMClient#initSDK()} 方法搭配使用,在应用代码的任意位置初始化 SDK。
83  * @par 参数说明:
84  * <table>
85  * <tr>
86  * <th>参数名称</th>
87  * <th>描述</th>
88  * </tr>
89  * <tr>
90  * <td>context</td>
91  * <td>调用上下文</td>
92  * </tr>
93  * <tr>
94  * <td>info</td>
95  * <td>手动登录成功的用户信息。如 account(即 accid)和 token<ul><li>如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)</li><li>如果当前还没有登录成功的用户,传入 null,后续可以手动调用 {@link com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo)} 方法进行登录</li></ul></td>
96  * </tr>
97  * <tr>
98  * <td>options</td>
99  * <td>SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等<ul><li>其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,<strong>否则必须传入</strong>,如果两处都设置了,取此处的值</li><li>如果返回值为 null,则全部使用默认参数</li><li>可通过 {@link SDKOptions#asyncInitSDK} 参数配置进行同步/异步初始化</li><li>可通过 {@link SDKOptions#reducedIM} 参数实现支持弱 IM 模式,延迟加载 push 进程服务等<strong>(非弱 IM 场景慎用)</strong></li></ul></td>
100  * </tr>
101  * </table>
102  *
103  */
104  public static void config(Context context, LoginInfo info, SDKOptions options) {
105  final long startTime = System.currentTimeMillis();
106  if (LogDesensitizationConfigHelper.printToLogcat(options)) {
107  Log.i(TAG, "NIMClient config");
108  }
109  SDKCache.config(context, info, options);
110 
111  //config时马上设置主进程标志位,防止LocalAgent构造时return导致空指针
112  if (NIMUtil.isMainProcessPure(context) > 0) {
113  SDKState.setProcessTag(2);
114  Handlers.sharedInstance().newMiscHandler().post(() -> {
115  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","config");
116  });
117  }
118  }
119 
120  /**
121  * [初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 {@link Application#onCreate()} 中初始化)。与 {@link NIMClient#config(Context, LoginInfo, SDKOptions)} 方法搭配使用。
122  *
123  * @par 使用场景:
124  * 适用于需要用户授权隐私信息采集的业务场景。与常规初始化 SDK 方式相比,该方式耗时更少,且更适配弱 IM 场景(应用仅需在其部分业务中使用 IM 能力(不需要在应用启动时就做 IM 自动登录),且并不需要保证消息、通知和数据的实时性的场景)。
125  * @par 使用建议:
126  * 该初始化方式一般不再需要做进程判断。
127  * @par 使用限制:
128  * 该接口适用的 SDK 版本:v5.0.0及以上。<br>
129  * 该方法需要与 {@link NIMClient#config(Context, LoginInfo, SDKOptions)} 方法搭配使用,即先在 Application#onCreate 中调用 config 方法,然后在应用代码的任意位置调用 {@link NIMClient#initSDK()} 方法初始化 SDK。
130  *
131  */
132  public static void initSDK() {
133  long startTime = System.currentTimeMillis();
134  if (LogDesensitizationConfigHelper.printToLogcat()) {
135  Log.i(TAG, "NIMClient initSDK");
136  }
137  SDKCache.initUI();
138  if (NIMUtil.isMainProcess(SDKCache.getContext())) {
139  Handlers.sharedInstance().newMiscHandler().post(() -> {
140  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","initSDK");
141  });
142  }
143 
144  }
145 
146  /**
147  * [初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 {@link Application#onCreate()} 中初始化)。
148  *
149  * @par 使用建议:
150  * 除特殊需求,不建议使用该方式进行初始化 SDK。
151  * @par 使用限制:
152  * 该接口适用的 SDK 版本:v 及以上。
153  * @par 参数说明:
154  * <table>
155  * <tr>
156  * <th>参数名称</th>
157  * <th>描述</th>
158  * </tr>
159  * <tr>
160  * <td>context</td>
161  * <td>调用上下文</td>
162  * </tr>
163  * <tr>
164  * <td>info</td>
165  * <td>手动登录成功的用户信息。如 account(即 accid)和 token<ul><li>如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)</li><li>如果当前还没有登录成功的用户,传入 null,后续可以手动调用 {@link com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo)} 方法进行登录</li></ul></td>
166  * </tr>
167  * <tr>
168  * <td>options</td>
169  * <td>SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等<ul><li>其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,<strong>否则必须传入</strong>,如果两处都设置了,取此处的值</li><li>如果返回值为 null,则全部使用默认参数</li><li>可通过 {@link SDKOptions#asyncInitSDK} 参数配置进行同步/异步初始化</li><li>可通过 {@link SDKOptions#reducedIM} 参数实现支持弱 IM 模式,延迟加载 push 进程服务等<strong>(非弱 IM 场景慎用)</strong></li></ul></td>
170  * </tr>
171  * </table>
172  *
173  */
174  public static void initDelay(Context context, LoginInfo info, SDKOptions options) {
175  long startTime = System.currentTimeMillis();
176  if (LogDesensitizationConfigHelper.printToLogcat(options)) {
177  Log.i(TAG, "NIMClient initDelay");
178  }
179 
180  // 老的初始化接口,需要判断进程
181  if (NIMUtil.isMainProcess(context)) {
182  SDKCache.config(context, info, options, true);
183  SDKCache.initUI();
184  Handlers.sharedInstance().newMiscHandler().post(() -> {
185  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","initDelay");
186  });
187  }
188  }
189 
190  /**
191  * 获取云信各服务接口。
192  *
193  * @par 调用时机:
194  * 调用 NIM SDK 其他接口前,需要先调用该接口。
195  * @par 参数说明:
196  * <table>
197  * <tr>
198  * <th>参数名称</th>
199  * <th>描述</th>
200  * </tr>
201  * <tr>
202  * <td>clazz</td>
203  * <td>服务接口类型实例</td>
204  * </tr>
205  * <tr>
206  * <td><T></td>
207  * <td>服务接口类型</td>
208  * </tr>
209  * </table>
210  * @par 返回:
211  * 服务接口
212  *
213  */
214  public static <T> T getService(Class<T> clazz) {
215  return SDKCache.getService(clazz);
216  }
217 
218  /**
219  * 在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。
220  * @par 使用场景:
221  * 需要在没有 Looper 的非 UI 线程上同步调用云信 API,但是对应的接口云信没有同步版本,只有异步版本。例如,启动一个线程或者线程池处理云信 SDK 数据。
222  * @par 使用建议:
223  * 如果 SDK 提供了对应的同步API,请不要使用该方法强制转换一个异步 API。<br>
224  * 该方法将阻塞调用者线程,直到异步 API 有结果响应。因此,除特殊场景不建议使用!
225  * @par 使用限制:
226  * 不允许在 UI 线程上或者带 Looper 的非 UI 线程上使用该异步到同步的强制转换(不符合 Android规范)!否则结果会返回错误码 {@link ResponseCode#RES_API_SYNC_RUN_ON_LOOPER_THREAD_EXCEPTION}。
227  * @par 注意事项:
228  * 带 Looper 的非 UI 线程调用云信异步 API,会在调用线程执行回调(4.4.0 版本之前的 SDK 版本,会统一回调到 UI 线程上)。
229  * @par 参数说明:
230  * <table>
231  * <tr>
232  * <th>参数名称</th>
233  * <th>描述</th>
234  * </tr>
235  * <tr>
236  * <td>future</td>
237  * <td>异步 API 调用返回的回调</td>
238  * </tr>
239  * <tr>
240  * <td><T></td>
241  * <td>结果的数据类型</td>
242  * </tr>
243  * <tr>
244  * <td>time</td>
245  * <td>最大同步等待时间,单位毫秒,一般设置为 30000,超时后该方法直接返回错误,错误码参见 {@link ResponseCode#RES_API_SYNC_TIMEOUT}</td>
246  * </tr>
247  * </table>
248  * @par 返回:
249  * 在非 UI 线程上同步等待异步调用结果
250  *
251  */
252  public static <T> RequestResult<T> syncRequest(InvocationFuture<T> future, long time) {
253  return APISyncHelper.syncRequest(future, time);
254  }
255 
256  /**
257  * 在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 {@link NIMClient#syncRequest(InvocationFuture, long)} 接口。
258  * @par 参数说明:
259  * <table>
260  * <tr>
261  * <th>参数名称</th>
262  * <th>描述</th>
263  * </tr>
264  * <tr>
265  * <td>future</td>
266  * <td>异步 API 调用返回的回调</td>
267  * </tr>
268  * <tr>
269  * <td><T></td>
270  * <td>结果的数据类型</td>
271  * </tr>
272  * </table>
273  * @par 返回:
274  * 在非 UI 线程上同步等待异步调用结果
275  *
276  */
278  return APISyncHelper.syncRequest(future, 30 * 1000L);
279  }
280 
281  /**
282  * 获取当前用户的 IM 账号(accid)。
283  * @par 返回:
284  * 当前用户的 IM 账号(accid)
285  */
286  public static String getCurrentAccount(){
287  String account = SDKCache.getAccount();
288  if(account == null){
289  account = "";
290  }
291  return account;
292  }
293 
294  /**
295  * 获取当前应用的 AppKey。
296  * @par 返回:
297  * 当前应用的 AppKey
298  */
299  public static String getAppKey(){
300  try {
301  String appKey = SDKCache.getAppKey();
302  if(appKey == null)
303  {
304  return "";
305  }
306  return appKey;
307  } catch (Exception e) {
308  return "";
309  }
310  }
311 
312  /**
313  * 获取当前用户的状态。
314  * @par 返回:
315  * 当前用户的状态 {@link StatusCode}
316  */
317  public static StatusCode getStatus() {
318  return SDKState.getStatus();
319  }
320 
321  /**
322  * 获取 SDK 当前的登录模式。
323  *
324  * @par 返回:
325  * 当前的登录模式 {@link ModeCode}包括以下三种模式:<ul><li>INIT:初始状态 </li><li>IM:IM 登录模式(可以登录聊天室,但需要保持 IM 和聊天室连接)</li><li>CHAT_ROOM_INDEPENDENT:聊天室独立登录模式(不需要 IM 连接)</li></ul>
326  */
327 
328  public static ModeCode getMode() {
329  return SDKState.getMode();
330  }
331 
332  /**
333  * 通知栏消息提醒开关。
334  * @par 调用限制:
335  * 只有 {@link StatusBarNotificationConfig} 配置不为空时才有效。<br>
336  * SDKOptions.StatusBarNotificationConfig 默认为 null,即 SDK 不提供通知栏提醒功能,由客户 APP自行实现。因此如需启用通知栏消息提醒功能,需要先设置初始化参数 StatusBarNotificationConfig。
337  * @par 参数说明:
338  * on :开关,true 为开启,false 为关闭,默认开启
339  */
340  public static void toggleNotification(boolean on) {
341  SDKCache.toggleNotification(on);
342  }
343 
344 
345  /**
346  * 撤回消息需要通知栏提醒的开关。
347  * @par 调用限制:
348  *只有 StatusBarNotificationConfig 配置不为空且通知栏消息提醒({@link NIMClient#toggleNotification(boolean)})开启时才有效。
349  * @par 参数说明:
350  * on :开关,true 为开启,false 为关闭,默认开启
351  *
352  */
353  public static void toggleRevokeMessageNotification(boolean on) {
354  SDKCache.toggleRevokeMessageNotification(on);
355  }
356 
357  /**
358  * 更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。
359  * @par 使用场景:
360  * 若未在初始化(SDKOptions.StatusBarNotificationConfig)时设置通知栏消息的配置项,或者初始化时设置了,但是需要修改其配置项,可调用该接口实现通知栏消息提醒配置的更新。
361  * @par 参数说明:
362  * config 通知栏消息提醒的配置项,包括响铃提醒、振动提醒、免打扰设置等
363  *
364  */
366  SDKCache.updateStatusBarNotificationConfig(config);
367  }
368 
369  /**
370  * 更新系统文案。
371  * @par 使用场景:
372  * 当系统语言发生变化时,可以调用该接口更新文案配置,实现 SDK 对多语言的支持。也可以用于定制通知栏消息提醒的文案。
373  * @par 注意事项:
374  * 配置不能立即生效,所有文案均需要在下次使用时才会生效。
375  * @par 参数说明:
376  * strings SDK 中用到的文案字符串定义,目前仅状态栏消息提醒处使用。如果您没有提供自定义值,只使用默认值
377  */
378  public static void updateStrings(NimStrings strings) {
379  SDKCache.updateStrings(strings);
380  }
381 
382  /**
383  * 获取 SDK 数据缓存目录路径。
384  * @par 调用时机:
385  * 建议在初始化 SDK 之后调用。
386  * @par 返回:
387  * SDK 数据缓存目录路径(包含子目录,如日志文件 log、消息中的文件 file、消息中的原图 image、消息中的音频 audio、消息中的原视频 video、图片/视频消息中的缩略图 thumb 等)
388  */
389  public static String getSdkStorageDirPath() {
390  return NimStorageUtil.getRootPath();
391  }
392 
393  /**
394  * 运行时获取当前 SDK 版本号。
395  * @par 返回:
396  * 当前 SDK 版本号,例如 "1.0.0"
397  */
398  public static String getSDKVersion() {
399  return BuildConfig.VERSION_NAME;
400  }
401 
402 
403  /**
404  * 更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认值。
405  * @par 默认值对应场景:
406  * <ul><li>NimNosSceneKeyConstant::NIM_DEFAULT_PROFILE:用户和群组资料(例如头像)的上传默认走该场景</li><li>NimNosSceneKeyConstant::NIM_DEFAULT_IM:私聊、群聊、聊天室发送图片、音频、视频、文件等动作默认走该场景</li><li>NimNosSceneKeyConstant::NIM_SYSTEM_NOS_SCENE:SDK 内部上传文件(例如日志)默认走该场景,并且对应的过期时间不允许修改</li></ul>
407  * 默认场景对应的默认过期时间为 NEVER_EXPIRE(永不过期,资源一直存在于服务器),用户可以修改默认场景(除 NIM_SYSTEM_NOS_SCENE 场景)的过期时间。<br>
408  * 同时用户可以新增自定义场景并指定对应的过期时间(sceneKey-> expireTimeByDay),目前最多增加 10 个场景。
409  * @par 使用场景:
410  * 如果用户发送消息或上传文件等动作,需要指定其他的场景(指定 NOS 服务网络),可以先新增自定义场景,后续只需要传入相应的 sceneKey 即可。
411  * @par 使用建议:
412  * 在配置时,强烈建议将相应的 sceneKey 常量化,以方便使用,具体请参考 {@link com.netease.nimlib.NimNosSceneKeyConstant}。
413  * @par 参数说明:
414  * config NOS Token 场景配置
415  * @par 相关接口:
416  * <ul><li>{@link NosTokenSceneConfig#appendCustomScene(String, int)}:增加自定义场景</li><li>{@link NosTokenSceneConfig#updateDefaultProfileSceneExpireTime(int)}:更新默认场景(NIM_DEFAULT_PROFILE)的过期时间</li><li>{@link NosTokenSceneConfig#updateDefaultIMSceneExpireTime(int)}:更新默认场景(NIM_DEFAULT_IM)的过期时间</li></ul>
417  *
418  */
420  SDKCache.updateTokenSceneConfig(config);
421  }
422 
423  /**
424  * 更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示都可以获取,没有限制。
425  * @par 注意事项:
426  * 不获取设备信息可能会影响功能的使用,若需要设置为不获取设备信息,请联系云信技术支持。
427  * @par 参数说明:
428  * captureDeviceInfoConfig 设备信息获取配置,包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息
429  */
430  public static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig) {
431  SDKCache.updateCaptureDeviceInfoOption(captureDeviceInfoConfig);
432  }
433 }
SDK中用到的字符串定义。可用于开发者定制显示文案,以及实现SDK对多语言的支持。 目前仅新消息状态栏提醒...
Definition: NimStrings.java:11
static void toggleNotification(boolean on)
通知栏消息提醒开关。
Definition: NIMClient.java:340
static int isMainProcessPure(Context context)
判断当前进程是否是主进程(纯净版本),不会有隐私不合规风险,但是不保证100判断正确 ...
Definition: NIMUtil.java:36
static String getSDKVersion()
运行时获取当前 SDK 版本号。
Definition: NIMClient.java:398
static void updateStrings(NimStrings strings)
更新系统文案。
Definition: NIMClient.java:378
static void config(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数...
Definition: NIMClient.java:104
云信API异步转同步调用结果
static boolean isMainProcess(Context context)
Definition: NIMUtil.java:95
用户当前状态码定义
Definition: StatusCode.java:6
SDK当前登录模式状态码定义
Definition: ModeCode.java:6
SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
Definition: NIMClient.java:22
static String getSdkStorageDirPath()
获取 SDK 数据缓存目录路径。
Definition: NIMClient.java:389
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future, long time)
在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。
Definition: NIMClient.java:252
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future)
在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 NIMClient#syncR...
Definition: NIMClient.java:277
static String getAppKey()
获取当前应用的 AppKey。
Definition: NIMClient.java:299
static void initSDK()
[初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NI...
Definition: NIMClient.java:132
static StatusCode getStatus()
获取当前用户的状态。
Definition: NIMClient.java:317
用户登录认证信息。
Definition: LoginInfo.java:23
static void toggleRevokeMessageNotification(boolean on)
撤回消息需要通知栏提醒的开关。
Definition: NIMClient.java:353
static void initDelay(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。 ...
Definition: NIMClient.java:174
可自定义的 SDK 选项设置。
Definition: SDKOptions.java:20
static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig)
更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示...
Definition: NIMClient.java:430
static void updateTokenSceneConfig(NosTokenSceneConfig config)
更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认...
Definition: NIMClient.java:419
static ModeCode getMode()
获取 SDK 当前的登录模式。
Definition: NIMClient.java:328
SDK nos token场景配置,不配置的话,走默认值,默认值只有以下3种场景:
static< T > T getService(Class< T > clazz)
获取云信各服务接口。
Definition: NIMClient.java:214
static void init(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。 ...
Definition: NIMClient.java:57
static String getCurrentAccount()
获取当前用户的 IM 账号(accid)。
Definition: NIMClient.java:286
static void updateStatusBarNotificationConfig(StatusBarNotificationConfig config)
更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。
Definition: NIMClient.java:365