NIMSDK-AOS  9.16.0
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.invocation.sync.base.APISyncHelper;
10 import com.netease.nimlib.report.ApiTraceEventManager;
15 import com.netease.nimlib.util.storage.NimStorageUtil;
16 
20 public class NIMClient {
21 
22  public static final String TAG = "NIMClient";
55  public static void init(Context context, LoginInfo info, SDKOptions options) {
56  long startTime = System.currentTimeMillis();
57  Log.i(TAG,"NIMClient init");
58  SDKCache.config(context, info, options);
59 
60  // 老的初始化接口,需要判断进程
61  if (NIMUtil.isMainProcess(context)) {
62  SDKCache.initUI();
63  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","init");
64  }
65  }
66 
98  public static void config(Context context, LoginInfo info, SDKOptions options) {
99  long startTime = System.currentTimeMillis();
100  Log.i(TAG,"NIMClient config");
101  SDKCache.config(context, info, options);
102 
103  //config时马上设置主进程标志位,防止LocalAgent构造时return导致空指针
104  if (NIMUtil.isMainProcessPure(context) > 0) {
105  SDKState.setProcessTag(2);
106  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","config");
107  }
108  }
109 
122  public static void initSDK() {
123  long startTime = System.currentTimeMillis();
124  Log.i(TAG,"NIMClient initSDK");
125  SDKCache.initUI();
126  if (NIMUtil.isMainProcess(SDKCache.getContext())) {
127  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","initSDK");
128  }
129 
130  }
131 
160  public static void initDelay(Context context, LoginInfo info, SDKOptions options) {
161  long startTime = System.currentTimeMillis();
162  Log.i(TAG,"NIMClient initDelay");
163 
164  // 老的初始化接口,需要判断进程
165  if (NIMUtil.isMainProcess(context)) {
166  SDKCache.config(context, info, options, true);
167  SDKCache.initUI();
168  ApiTraceEventManager.getInstance().recordPendingTrackEvent(startTime,"NIMClient","initDelay");
169  }
170  }
171 
196  public static <T> T getService(Class<T> clazz) {
197  return SDKCache.getService(clazz);
198  }
199 
234  public static <T> RequestResult<T> syncRequest(InvocationFuture<T> future, long time) {
235  return APISyncHelper.syncRequest(future, time);
236  }
237 
260  return APISyncHelper.syncRequest(future, 30 * 1000L);
261  }
262 
268  public static String getCurrentAccount(){
269  String account = SDKCache.getAccount();
270  if(account == null){
271  account = "";
272  }
273  return account;
274  }
275 
281  public static String getAppKey(){
282  try {
283  String appKey = SDKCache.getAppKey();
284  if(appKey == null)
285  {
286  return "";
287  }
288  return appKey;
289  } catch (Exception e) {
290  return "";
291  }
292  }
293 
299  public static StatusCode getStatus() {
300  return SDKState.getStatus();
301  }
302 
310  public static ModeCode getMode() {
311  return SDKState.getMode();
312  }
313 
322  public static void toggleNotification(boolean on) {
323  SDKCache.toggleNotification(on);
324  }
325 
326 
335  public static void toggleRevokeMessageNotification(boolean on) {
336  SDKCache.toggleRevokeMessageNotification(on);
337  }
338 
348  SDKCache.updateStatusBarNotificationConfig(config);
349  }
350 
360  public static void updateStrings(NimStrings strings) {
361  SDKCache.updateStrings(strings);
362  }
363 
371  public static String getSdkStorageDirPath() {
372  return NimStorageUtil.getRootPath();
373  }
374 
380  public static String getSDKVersion() {
381  return BuildConfig.VERSION_NAME;
382  }
383 
384 
402  SDKCache.updateTokenSceneConfig(config);
403  }
404 
412  public static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig) {
413  SDKCache.updateCaptureDeviceInfoOption(captureDeviceInfoConfig);
414  }
415 }
SDK中用到的字符串定义。可用于开发者定制显示文案,以及实现SDK对多语言的支持。 目前仅新消息状态栏提醒...
Definition: NimStrings.java:11
static void toggleNotification(boolean on)
通知栏消息提醒开关。
Definition: NIMClient.java:322
static int isMainProcessPure(Context context)
判断当前进程是否是主进程(纯净版本),不会有隐私不合规风险,但是不保证100判断正确 ...
Definition: NIMUtil.java:34
static String getSDKVersion()
运行时获取当前 SDK 版本号。
Definition: NIMClient.java:380
static void updateStrings(NimStrings strings)
更新系统文案。
Definition: NIMClient.java:360
static void config(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数...
Definition: NIMClient.java:98
云信API异步转同步调用结果
static boolean isMainProcess(Context context)
Definition: NIMUtil.java:81
用户当前状态码定义
Definition: StatusCode.java:6
SDK当前登录模式状态码定义
Definition: ModeCode.java:6
SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
Definition: NIMClient.java:20
static String getSdkStorageDirPath()
获取 SDK 数据缓存目录路径。
Definition: NIMClient.java:371
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future, long time)
在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。
Definition: NIMClient.java:234
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future)
在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 NIMClient#syncR...
Definition: NIMClient.java:259
static String getAppKey()
获取当前应用的 AppKey。
Definition: NIMClient.java:281
static void initSDK()
[初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NI...
Definition: NIMClient.java:122
static StatusCode getStatus()
获取当前用户的状态。
Definition: NIMClient.java:299
用户登录认证信息。
Definition: LoginInfo.java:23
static void toggleRevokeMessageNotification(boolean on)
撤回消息需要通知栏提醒的开关。
Definition: NIMClient.java:335
static void initDelay(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。 ...
Definition: NIMClient.java:160
可自定义的 SDK 选项设置。
Definition: SDKOptions.java:20
static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig)
更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示...
Definition: NIMClient.java:412
static void updateTokenSceneConfig(NosTokenSceneConfig config)
更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认...
Definition: NIMClient.java:401
static ModeCode getMode()
获取 SDK 当前的登录模式。
Definition: NIMClient.java:310
SDK nos token场景配置,不配置的话,走默认值,默认值只有以下3种场景:
static< T > T getService(Class< T > clazz)
获取云信各服务接口。
Definition: NIMClient.java:196
static void init(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。 ...
Definition: NIMClient.java:55
static String getCurrentAccount()
获取当前用户的 IM 账号(accid)。
Definition: NIMClient.java:268
static void updateStatusBarNotificationConfig(StatusBarNotificationConfig config)
更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。
Definition: NIMClient.java:347