NIMSDK-AOS  9.16.0
静态 Public 成员函数 | 静态 Public 属性 | 所有成员列表
com.netease.nimlib.sdk.NIMClient类 参考

SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。 更多...

静态 Public 成员函数

static void init (Context context, LoginInfo info, SDKOptions options)
 [初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。 更多...
 
static void config (Context context, LoginInfo info, SDKOptions options)
 [初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数同 NIMClient#init(Context, LoginInfo, SDKOptions)更多...
 
static void initSDK ()
 [初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NIMClient#config(Context, LoginInfo, SDKOptions) 方法搭配使用。 更多...
 
static void initDelay (Context context, LoginInfo info, SDKOptions options)
 [初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。 更多...
 
static< T > T getService (Class< T > clazz)
 获取云信各服务接口。 更多...
 
static< T > RequestResult< T > syncRequest (InvocationFuture< T > future, long time)
 在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。 更多...
 
static< T > RequestResult< T > syncRequest (InvocationFuture< T > future)
 在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 NIMClient#syncRequest(InvocationFuture, long) 接口。 更多...
 
static String getCurrentAccount ()
 获取当前用户的 IM 账号(accid)。 更多...
 
static String getAppKey ()
 获取当前应用的 AppKey。 更多...
 
static StatusCode getStatus ()
 获取当前用户的状态。 更多...
 
static ModeCode getMode ()
 获取 SDK 当前的登录模式。 更多...
 
static void toggleNotification (boolean on)
 通知栏消息提醒开关。 更多...
 
static void toggleRevokeMessageNotification (boolean on)
 撤回消息需要通知栏提醒的开关。 更多...
 
static void updateStatusBarNotificationConfig (StatusBarNotificationConfig config)
 更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。 更多...
 
static void updateStrings (NimStrings strings)
 更新系统文案。 更多...
 
static String getSdkStorageDirPath ()
 获取 SDK 数据缓存目录路径。 更多...
 
static String getSDKVersion ()
 运行时获取当前 SDK 版本号。 更多...
 
static void updateTokenSceneConfig (NosTokenSceneConfig config)
 更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认值。 更多...
 
static void updateCaptureDeviceInfoOption (CaptureDeviceInfoConfig captureDeviceInfoConfig)
 更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示都可以获取,没有限制。 更多...
 

静态 Public 属性

static final String TAG = "NIMClient"
 

详细描述

SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。

在文件 NIMClient.java20 行定义.

成员函数说明

◆ config()

static void com.netease.nimlib.sdk.NIMClient.config ( Context  context,
LoginInfo  info,
SDKOptions  options 
)
static

[初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数同 NIMClient#init(Context, LoginInfo, SDKOptions)

使用场景:
适用于需要用户授权隐私信息采集的业务场景。与常规初始化 SDK 方式相比,该方式耗时更少,且更适配弱 IM 场景(应用仅需在其部分业务中使用 IM 能力(不需要在应用启动时就做 IM 自动登录),且并不需要保证消息、通知和数据的实时性的场景)。
使用建议:
该初始化方式一般不再需要做进程判断。
使用限制:
该接口适用的 SDK 版本:v5.0.0及以上。
NIMClient#config(Context, LoginInfo, SDKOptions) 方法必须与 NIMClient#initSDK() 方法搭配使用,在应用代码的任意位置初始化 SDK。
参数说明:
参数名称 描述
context 调用上下文
info 手动登录成功的用户信息。如 account(即 accid)和 token
  • 如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)
  • 如果当前还没有登录成功的用户,传入 null,后续可以手动调用 com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo) 方法进行登录
options SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等
  • 其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,否则必须传入,如果两处都设置了,取此处的值
  • 如果返回值为 null,则全部使用默认参数
  • 可通过 SDKOptions#asyncInitSDK 参数配置进行同步/异步初始化
  • 可通过 SDKOptions#reducedIM 参数实现支持弱 IM 模式,延迟加载 push 进程服务等(非弱 IM 场景慎用)

在文件 NIMClient.java98 行定义.

◆ getAppKey()

static String com.netease.nimlib.sdk.NIMClient.getAppKey ( )
static

获取当前应用的 AppKey。

返回:
当前应用的 AppKey

在文件 NIMClient.java281 行定义.

◆ getCurrentAccount()

static String com.netease.nimlib.sdk.NIMClient.getCurrentAccount ( )
static

获取当前用户的 IM 账号(accid)。

返回:
当前用户的 IM 账号(accid)

在文件 NIMClient.java268 行定义.

◆ getMode()

static ModeCode com.netease.nimlib.sdk.NIMClient.getMode ( )
static

获取 SDK 当前的登录模式。

返回:
当前的登录模式 ModeCode包括以下三种模式:
  • INIT:初始状态
  • IM:IM 登录模式(可以登录聊天室,但需要保持 IM 和聊天室连接)
  • CHAT_ROOM_INDEPENDENT:聊天室独立登录模式(不需要 IM 连接)

在文件 NIMClient.java310 行定义.

◆ getSdkStorageDirPath()

static String com.netease.nimlib.sdk.NIMClient.getSdkStorageDirPath ( )
static

获取 SDK 数据缓存目录路径。

调用时机:
建议在初始化 SDK 之后调用。
返回:
SDK 数据缓存目录路径(包含子目录,如日志文件 log、消息中的文件 file、消息中的原图 image、消息中的音频 audio、消息中的原视频 video、图片/视频消息中的缩略图 thumb 等)

在文件 NIMClient.java371 行定义.

◆ getSDKVersion()

static String com.netease.nimlib.sdk.NIMClient.getSDKVersion ( )
static

运行时获取当前 SDK 版本号。

返回:
当前 SDK 版本号,例如 "1.0.0"

在文件 NIMClient.java380 行定义.

◆ getService()

static <T> T com.netease.nimlib.sdk.NIMClient.getService ( Class< T >  clazz)
static

获取云信各服务接口。

调用时机:
调用 NIM SDK 其他接口前,需要先调用该接口。
参数说明:
参数名称 描述
clazz 服务接口类型实例
<T> 服务接口类型
返回:
服务接口

在文件 NIMClient.java196 行定义.

◆ getStatus()

static StatusCode com.netease.nimlib.sdk.NIMClient.getStatus ( )
static

获取当前用户的状态。

返回:
当前用户的状态 StatusCode

在文件 NIMClient.java299 行定义.

◆ init()

static void com.netease.nimlib.sdk.NIMClient.init ( Context  context,
LoginInfo  info,
SDKOptions  options 
)
static

[初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。

使用场景:
属于常规初始化方式,适用绝大多数的初始化场景。
使用建议:
建议在 Application#onCreate() 中添加进程判断,SDK 的初始化方法必须在主进程中调用。不要把业务逻辑写入 core 进程,理论上,core 进程的 Application#onCreate()(或者 Application 的其他方法)只能做与 NIM SDK 相关的工作。IM 进程启动时也不要初始化第三方库。
调用时机:
请确保在调用其他 API 前先调用该方法初始化 SDK。
参数说明:
参数名称 描述
context 调用上下文
info 手动登录成功的用户信息。如 account(即 accid)和 token
  • 如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)
  • 如果当前还没有登录成功的用户,传入 null,后续可以手动调用 com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo) 方法进行登录
options SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等
  • 其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,否则必须传入,如果两处都设置了,取此处的值
  • 如果返回值为 null,则全部使用默认参数
相关回调:
com.netease.nimlib.sdk.lifecycle.SdkLifecycleObserver#observeMainProcessInitCompleteResult(Observer, boolean) :初始化进程回调

在文件 NIMClient.java55 行定义.

◆ initDelay()

static void com.netease.nimlib.sdk.NIMClient.initDelay ( Context  context,
LoginInfo  info,
SDKOptions  options 
)
static

[初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。

使用建议:
除特殊需求,不建议使用该方式进行初始化 SDK。
使用限制:
该接口适用的 SDK 版本:v 及以上。
参数说明:
参数名称 描述
context 调用上下文
info 手动登录成功的用户信息。如 account(即 accid)和 token
  • 如果提供,SDK 在初始化的同时将自动调用登录接口进行登录(同时将打开用户相关的数据库)
  • 如果当前还没有登录成功的用户,传入 null,后续可以手动调用 com.netease.nimlib.sdk.auth.AuthService#login(LoginInfo) 方法进行登录
options SDK 的其他初始化配置。如 App Key、第三方离线推送配置、是否开启会话已读多端同步等
  • 其中 App Key 如果已在集成 SDK 时(AndroidManifest.xml 中通过 meta-data 的方式设置)传入,则此处不需要再传入,否则必须传入,如果两处都设置了,取此处的值
  • 如果返回值为 null,则全部使用默认参数
  • 可通过 SDKOptions#asyncInitSDK 参数配置进行同步/异步初始化
  • 可通过 SDKOptions#reducedIM 参数实现支持弱 IM 模式,延迟加载 push 进程服务等(非弱 IM 场景慎用)

在文件 NIMClient.java160 行定义.

◆ initSDK()

static void com.netease.nimlib.sdk.NIMClient.initSDK ( )
static

[初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NIMClient#config(Context, LoginInfo, SDKOptions) 方法搭配使用。

使用场景:
适用于需要用户授权隐私信息采集的业务场景。与常规初始化 SDK 方式相比,该方式耗时更少,且更适配弱 IM 场景(应用仅需在其部分业务中使用 IM 能力(不需要在应用启动时就做 IM 自动登录),且并不需要保证消息、通知和数据的实时性的场景)。
使用建议:
该初始化方式一般不再需要做进程判断。
使用限制:
该接口适用的 SDK 版本:v5.0.0及以上。
该方法需要与 NIMClient#config(Context, LoginInfo, SDKOptions) 方法搭配使用,即先在 Application::onCreate 中调用 config 方法,然后在应用代码的任意位置调用 NIMClient#initSDK() 方法初始化 SDK。

在文件 NIMClient.java122 行定义.

◆ syncRequest() [1/2]

static <T> RequestResult<T> com.netease.nimlib.sdk.NIMClient.syncRequest ( InvocationFuture< T >  future,
long  time 
)
static

在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。

使用场景:
需要在没有 Looper 的非 UI 线程上同步调用云信 API,但是对应的接口云信没有同步版本,只有异步版本。例如,启动一个线程或者线程池处理云信 SDK 数据。
使用建议:
如果 SDK 提供了对应的同步API,请不要使用该方法强制转换一个异步 API。
该方法将阻塞调用者线程,直到异步 API 有结果响应。因此,除特殊场景不建议使用!
使用限制:
不允许在 UI 线程上或者带 Looper 的非 UI 线程上使用该异步到同步的强制转换(不符合 Android规范)!否则结果会返回错误码 ResponseCode#RES_API_SYNC_RUN_ON_LOOPER_THREAD_EXCEPTION
注意事项:
带 Looper 的非 UI 线程调用云信异步 API,会在调用线程执行回调(4.4.0 版本之前的 SDK 版本,会统一回调到 UI 线程上)。
参数说明:
参数名称 描述
future 异步 API 调用返回的回调
<T> 结果的数据类型
time 最大同步等待时间,单位毫秒,一般设置为 30000,超时后该方法直接返回错误,错误码参见 ResponseCode#RES_API_SYNC_TIMEOUT
返回:
在非 UI 线程上同步等待异步调用结果

在文件 NIMClient.java234 行定义.

◆ syncRequest() [2/2]

static <T> RequestResult<T> com.netease.nimlib.sdk.NIMClient.syncRequest ( InvocationFuture< T >  future)
static

在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 NIMClient#syncRequest(InvocationFuture, long) 接口。

参数说明:
参数名称 描述
future 异步 API 调用返回的回调
<T> 结果的数据类型
返回:
在非 UI 线程上同步等待异步调用结果

在文件 NIMClient.java259 行定义.

◆ toggleNotification()

static void com.netease.nimlib.sdk.NIMClient.toggleNotification ( boolean  on)
static

通知栏消息提醒开关。

调用限制:
只有 StatusBarNotificationConfig 配置不为空时才有效。
SDKOptions.StatusBarNotificationConfig 默认为 null,即 SDK 不提供通知栏提醒功能,由客户 APP自行实现。因此如需启用通知栏消息提醒功能,需要先设置初始化参数 StatusBarNotificationConfig。
参数说明:
on :开关,true 为开启,false 为关闭,默认开启

在文件 NIMClient.java322 行定义.

◆ toggleRevokeMessageNotification()

static void com.netease.nimlib.sdk.NIMClient.toggleRevokeMessageNotification ( boolean  on)
static

撤回消息需要通知栏提醒的开关。

调用限制:
只有 StatusBarNotificationConfig 配置不为空且通知栏消息提醒(NIMClient#toggleNotification(boolean))开启时才有效。
参数说明:
on :开关,true 为开启,false 为关闭,默认开启

在文件 NIMClient.java335 行定义.

◆ updateCaptureDeviceInfoOption()

static void com.netease.nimlib.sdk.NIMClient.updateCaptureDeviceInfoOption ( CaptureDeviceInfoConfig  captureDeviceInfoConfig)
static

更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示都可以获取,没有限制。

注意事项:
不获取设备信息可能会影响功能的使用,若需要设置为不获取设备信息,请联系云信技术支持。
参数说明:
captureDeviceInfoConfig 设备信息获取配置,包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息

在文件 NIMClient.java412 行定义.

◆ updateStatusBarNotificationConfig()

static void com.netease.nimlib.sdk.NIMClient.updateStatusBarNotificationConfig ( StatusBarNotificationConfig  config)
static

更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。

使用场景:
若未在初始化(SDKOptions.StatusBarNotificationConfig)时设置通知栏消息的配置项,或者初始化时设置了,但是需要修改其配置项,可调用该接口实现通知栏消息提醒配置的更新。
参数说明:
config 通知栏消息提醒的配置项,包括响铃提醒、振动提醒、免打扰设置等

在文件 NIMClient.java347 行定义.

◆ updateStrings()

static void com.netease.nimlib.sdk.NIMClient.updateStrings ( NimStrings  strings)
static

更新系统文案。

使用场景:
当系统语言发生变化时,可以调用该接口更新文案配置,实现 SDK 对多语言的支持。也可以用于定制通知栏消息提醒的文案。
注意事项:
配置不能立即生效,所有文案均需要在下次使用时才会生效。
参数说明:
strings SDK 中用到的文案字符串定义,目前仅状态栏消息提醒处使用。如果您没有提供自定义值,只使用默认值

在文件 NIMClient.java360 行定义.

◆ updateTokenSceneConfig()

static void com.netease.nimlib.sdk.NIMClient.updateTokenSceneConfig ( NosTokenSceneConfig  config)
static

更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认值。

默认值对应场景:
  • NimNosSceneKeyConstant::NIM_DEFAULT_PROFILE:用户和群组资料(例如头像)的上传默认走该场景
  • NimNosSceneKeyConstant::NIM_DEFAULT_IM:私聊、群聊、聊天室发送图片、音频、视频、文件等动作默认走该场景
  • NimNosSceneKeyConstant::NIM_SYSTEM_NOS_SCENE:SDK 内部上传文件(例如日志)默认走该场景,并且对应的过期时间不允许修改
默认场景对应的默认过期时间为 NEVER_EXPIRE(永不过期,资源一直存在于服务器),用户可以修改默认场景(除 NIM_SYSTEM_NOS_SCENE 场景)的过期时间。
同时用户可以新增自定义场景并指定对应的过期时间(sceneKey-> expireTimeByDay),目前最多增加 10 个场景。
使用场景:
如果用户发送消息或上传文件等动作,需要指定其他的场景(指定 NOS 服务网络),可以先新增自定义场景,后续只需要传入相应的 sceneKey 即可。
使用建议:
在配置时,强烈建议将相应的 sceneKey 常量化,以方便使用,具体请参考 com.netease.nimlib.NimNosSceneKeyConstant
参数说明:
config NOS Token 场景配置
相关接口:

在文件 NIMClient.java401 行定义.

类成员变量说明

◆ TAG

final String com.netease.nimlib.sdk.NIMClient.TAG = "NIMClient"
static

在文件 NIMClient.java22 行定义.


该类的文档由以下文件生成: