1 package com.netease.nimlib.sdk;
3 import android.app.Application;
4 import android.content.Context;
5 import android.util.Log;
25 public static final String
TAG =
"NIMClient";
59 final long startTime = System.currentTimeMillis();
60 if (LogDesensitizationConfigHelper.printToLogcat(options)) {
61 Log.i(TAG,
"NIMClient init");
63 SDKCache.config(context, info, options);
68 Handlers.sharedInstance().newMiscHandler().post(() -> {
69 ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,
"NIMClient",
"init");
106 final long startTime = System.currentTimeMillis();
107 if (LogDesensitizationConfigHelper.printToLogcat(options)) {
108 Log.i(TAG,
"NIMClient config");
110 SDKCache.config(context, info, options);
114 SDKState.setProcessTag(2);
115 Handlers.sharedInstance().newMiscHandler().post(() -> {
116 ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,
"NIMClient",
"config");
134 long startTime = System.currentTimeMillis();
135 if (LogDesensitizationConfigHelper.printToLogcat()) {
136 Log.i(TAG,
"NIMClient initSDK");
140 Handlers.sharedInstance().newMiscHandler().post(() -> {
141 ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,
"NIMClient",
"initSDK");
176 long startTime = System.currentTimeMillis();
177 if (LogDesensitizationConfigHelper.printToLogcat(options)) {
178 Log.i(TAG,
"NIMClient initDelay");
183 SDKCache.config(context, info, options,
true);
185 Handlers.sharedInstance().newMiscHandler().post(() -> {
186 ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,
"NIMClient",
"initDelay");
216 return SDKCache.getService(clazz);
254 return APISyncHelper.syncRequest(future, time);
279 return APISyncHelper.syncRequest(future, 30 * 1000L);
288 String account = SDKCache.getAccount();
302 String appKey = SDKCache.getAppKey();
308 }
catch (Exception e) {
320 return ABTestManager.getInstance().getABTestHttpRawBody();
329 return SDKState.getStatus();
340 return SDKState.getMode();
352 SDKCache.toggleNotification(on);
365 SDKCache.toggleRevokeMessageNotification(on);
377 SDKCache.updateStatusBarNotificationConfig(config);
390 SDKCache.updateStrings(strings);
401 return NimStorageUtil.getRootPath();
410 return BuildConfig.VERSION_NAME;
431 SDKCache.updateTokenSceneConfig(config);
442 SDKCache.updateCaptureDeviceInfoOption(captureDeviceInfoConfig);
SDK中用到的字符串定义。可用于开发者定制显示文案,以及实现SDK对多语言的支持。 目前仅新消息状态栏提醒...
static void toggleNotification(boolean on)
通知栏消息提醒开关。
static int isMainProcessPure(Context context)
判断当前进程是否是主进程(纯净版本),不会有隐私不合规风险,但是不保证100判断正确 ...
static String getABTestHttpRawBody()
获取最近一次 ABTest HTTP 请求返回的原始 body。
static String getSDKVersion()
运行时获取当前 SDK 版本号。
static void updateStrings(NimStrings strings)
更新系统文案。
static void config(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数...
static boolean isMainProcess(Context context)
SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
static String getSdkStorageDirPath()
获取 SDK 数据缓存目录路径。
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#syncR...
static String getAppKey()
获取当前应用的 AppKey。
static void initSDK()
[初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NI...
static StatusCode getStatus()
获取当前用户的状态。
static void toggleRevokeMessageNotification(boolean on)
撤回消息需要通知栏提醒的开关。
static void initDelay(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。 ...
static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig)
更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示...
static void updateTokenSceneConfig(NosTokenSceneConfig config)
更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认...
static ModeCode getMode()
获取 SDK 当前的登录模式。
SDK nos token场景配置,不配置的话,走默认值,默认值只有以下3种场景:
static< T > T getService(Class< T > clazz)
获取云信各服务接口。
static void init(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。 ...
static String getCurrentAccount()
获取当前用户的 IM 账号(accid)。
static void updateStatusBarNotificationConfig(StatusBarNotificationConfig config)
更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。