NIMSDK-AOS 10.2.6-beta
载入中...
搜索中...
未找到
NIMClient.java
浏览该文件的文档.
1package com.netease.nimlib.sdk;
2
3import android.app.Application;
4import android.content.Context;
5import android.util.Log;
6
7import com.netease.nimlib.BuildConfig;
8import com.netease.nimlib.SDKCache;
9import com.netease.nimlib.SDKCacheUI;
10import com.netease.nimlib.SDKState;
11import com.netease.nimlib.SDKStateUI;
12import com.netease.nimlib.invocation.sync.base.APISyncHelper;
13import com.netease.nimlib.sdk.auth.LoginInfo;
14import com.netease.nimlib.sdk.msg.model.CaptureDeviceInfoConfig;
15import com.netease.nimlib.sdk.util.NIMUtil;
16import com.netease.nimlib.sdk.util.api.RequestResult;
17import com.netease.nimlib.util.storage.NimStorageUtil;
18
22public class NIMClient {
23
24 public static final String TAG = "NIMClient";
57 public static void init(Context context, LoginInfo info, SDKOptions options) {
58 Log.i(TAG,"NIMClient init");
59 SDKCache.config(context, info, options);
60
61 // 老的初始化接口,需要判断进程
62 if (NIMUtil.isMainProcess(context)) {
63 SDKCache.initUI();
64 }
65 }
66
98 public static void config(Context context, LoginInfo info, SDKOptions options) {
99 Log.i(TAG,"NIMClient config");
100 SDKCache.config(context, info, options);
101
102 //config时马上设置主进程标志位,防止LocalAgent构造时return导致空指针
103 if (NIMUtil.isMainProcessPure(context) > 0) {
104 SDKState.setProcessTag(2);
105 }
106 }
107
120 public static void initSDK() {
121 Log.i(TAG,"NIMClient initSDK");
122 SDKCache.initUI();
123 }
124
153 public static void initDelay(Context context, LoginInfo info, SDKOptions options) {
154 Log.i(TAG,"NIMClient initDelay");
155
156 // 老的初始化接口,需要判断进程
157 if (NIMUtil.isMainProcess(context)) {
158 SDKCache.config(context, info, options, true, true);
159 SDKCache.initUI();
160 }
161 }
162
163 public static void initV2(Context context, SDKOptions options) {
164 Log.i(TAG,"NIMClient initDelay");
165 SDKCache.config(context, null, options, false, true, true);
166 SDKCache.initUI();
167 }
168
193 public static <T> T getService(Class<T> clazz) {
194 return SDKCacheUI.getService(clazz);
195 }
196
231 public static <T> RequestResult<T> syncRequest(InvocationFuture<T> future, long time) {
232 return APISyncHelper.syncRequest(future, time);
233 }
234
257 return APISyncHelper.syncRequest(future, 30 * 1000L);
258 }
259
265 public static String getCurrentAccount(){
266 String account = SDKCacheUI.getAccount();
267 if(account == null){
268 account = "";
269 }
270 return account;
271 }
272
278 public static String getAppKey(){
279 try {
280 String appKey = SDKCache.getAppKey();
281 if(appKey == null)
282 {
283 return "";
284 }
285 return appKey;
286 } catch (Exception e) {
287 return "";
288 }
289 }
290
296 public static StatusCode getStatus() {
297 return SDKStateUI.getStatus();
298 }
299
307 public static ModeCode getMode() {
308 return SDKStateUI.getMode();
309 }
310
319 public static void toggleNotification(boolean on) {
320 SDKCacheUI.toggleNotification(on);
321 }
322
323
332 public static void toggleRevokeMessageNotification(boolean on) {
333 SDKCacheUI.toggleRevokeMessageNotification(on);
334 }
335
345 SDKCacheUI.updateStatusBarNotificationConfig(config);
346 }
347
357 public static void updateStrings(NimStrings strings) {
358 SDKCacheUI.updateStrings(strings);
359 }
360
368 public static String getSdkStorageDirPath() {
369 return NimStorageUtil.getRootPath();
370 }
371
377 public static String getSDKVersion() {
378 return BuildConfig.VERSION_NAME;
379 }
380
381
399 SDKCacheUI.updateTokenSceneConfig(config);
400 }
401
409 public static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig) {
410 SDKCacheUI.updateCaptureDeviceInfoOption(captureDeviceInfoConfig);
411 }
412}
SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
Definition: NIMClient.java:22
static void initSDK()
[初始化 SDK 方式二] 在 UI 进程主线程上按需初始化 SDK(不放在 Application#onCreate() 中初始化)。与 NIMClient#config(Context,...
Definition: NIMClient.java:120
static String getCurrentAccount()
获取当前用户的 IM 账号(accid)。
Definition: NIMClient.java:265
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future, long time)
在非 UI 线程中调用云信 SDK 异步 API,强制将异步调用转换为同步调用。
Definition: NIMClient.java:231
static void initDelay(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式三] 在 UI 进程主线程上按需初始化 SDK(不一定放在 Application#onCreate() 中初始化)。
Definition: NIMClient.java:153
static void updateCaptureDeviceInfoOption(CaptureDeviceInfoConfig captureDeviceInfoConfig)
更新获取设备信息的相关配置。包括配置是否获取产品型号、是否获取制造商信息、是否获取品牌信息,null 表示都可以获取,没有限制。
Definition: NIMClient.java:409
static void updateTokenSceneConfig(NosTokenSceneConfig config)
更新 SDK NOS Token 场景配置。对于 SDK NOS Token,云信 SDK 有默认值 ,若用户不单独配置,则直接采用默认值。
Definition: NIMClient.java:398
static void init(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式一] 在 Application#onCreate() 中调用该方法在应用启动时初始化 SDK。
Definition: NIMClient.java:57
static void updateStatusBarNotificationConfig(StatusBarNotificationConfig config)
更新通知栏消息提醒配置,包括是否需要振动提醒、是否需要响铃提醒等。
Definition: NIMClient.java:344
static void updateStrings(NimStrings strings)
更新系统文案。
Definition: NIMClient.java:357
static void config(Context context, LoginInfo info, SDKOptions options)
[初始化 SDK 方式二] 在 Application#onCreate() 中配置 SDK(仅仅是配置,不影响性能),具体可配置的参数同 NIMClient#init(Context,...
Definition: NIMClient.java:98
static< T > RequestResult< T > syncRequest(InvocationFuture< T > future)
在非 UI 线程调用云信 SDK 异步 API,强制将异步调用转换为同步调用。该接口已废弃,请使用 NIMClient#syncRequest(InvocationFuture,...
Definition: NIMClient.java:256
static void toggleRevokeMessageNotification(boolean on)
撤回消息需要通知栏提醒的开关。
Definition: NIMClient.java:332
static StatusCode getStatus()
获取当前用户的状态。
Definition: NIMClient.java:296
static String getSdkStorageDirPath()
获取 SDK 数据缓存目录路径。
Definition: NIMClient.java:368
static ModeCode getMode()
获取 SDK 当前的登录模式。
Definition: NIMClient.java:307
static< T > T getService(Class< T > clazz)
获取云信各服务接口。
Definition: NIMClient.java:193
static void initV2(Context context, SDKOptions options)
Definition: NIMClient.java:163
static void toggleNotification(boolean on)
通知栏消息提醒开关。
Definition: NIMClient.java:319
static String getSDKVersion()
运行时获取当前 SDK 版本号。
Definition: NIMClient.java:377
static String getAppKey()
获取当前应用的 AppKey。
Definition: NIMClient.java:278
SDK中用到的字符串定义。可用于开发者定制显示文案,以及实现SDK对多语言的支持。 目前仅新消息状态栏提醒处使用。如果应用程序没有提供,只用默认值。
Definition: NimStrings.java:11
SDK nos token场景配置,不配置的话,走默认值,默认值只有以下3种场景:
可自定义的 SDK 选项设置。
Definition: SDKOptions.java:21
用户登录认证信息。
Definition: LoginInfo.java:23
static int isMainProcessPure(Context context)
判断当前进程是否是主进程(纯净版本),不会有隐私不合规风险,但是不保证100判断正确
Definition: NIMUtil.java:38
static boolean isMainProcess(Context context)
Definition: NIMUtil.java:85
云信API异步转同步调用结果
SDK当前登录模式状态码定义
Definition: ModeCode.java:6
用户当前状态码定义
Definition: StatusCode.java:6