概述
接入前的准备工作如下:
Android Studio 3.6.*+
项目适配AndroidX
说明: 云信的sdk和demo已经适配了androidx,当然如果你只是使用IM
并且手里有之前非androidx版demo的大佬,当我没说。
提醒: 网易云信 音视频2.0 只支持androidx!!!
网易云信UI:此链接为初始化相关操作UI基础库,不含任何业务逻辑。
下载DEMO地址: 此链接为DEMO项目源码 可直接参考引入 (其中包含了UI库)
如果您接入的是网易云信非音视频2.0的音视频通话,
以上的参考就满足需求了。
(下面的可以不用看了 虽然云信官方已经停止对非2.0的特别维护....)
如果您使用的是云信音视频2.0的
还需要一个demo参考: https://github.com/netease-kit
如果您使用的仅仅是IM功能 只需要集成 DEMO 中的 uikit 即可。
如果您使用了音视频2.0 就需要额外集成 rtskit 。
并且在MyApplication中选择合适的位置初始化SDK配置
public class IMApplication extends Application {
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
MultiDex.install(this);
}
/**
* 注意:每个进程都会创建自己的Application 然后调用onCreate() 方法,
* 如果用户有自己的逻辑需要写在Application#onCreate()(还有Application的其他方法)中,一定要注意判断进程,不能把业务逻辑写在core进程,
* 理论上,core进程的Application#onCreate()(还有Application的其他方法)只能做与im sdk 相关的工作
*/
@Override
public void onCreate() {
super.onCreate();
//demo中已经预置了的初始化入口
DemoCache.setContext(this);
// 4.6.0 开始,第三方推送配置入口改为 SDKOption#mixPushConfig,旧版配置方式依旧支持。
SDKOptions sdkOptions = NimSDKOptionConfig.getSDKOptions(this);
NIMClient.init(this, getLoginInfo(), sdkOptions);
// 以下逻辑只在主进程初始化时执行
if (NIMUtil.isMainProcess(this)) {
// 初始化红包模块,在初始化UIKit模块之前执行
NIMRedPacketClient.init(this);
// init pinyin 可选
PinYin.init(this);
PinYin.validate();
// 初始化UIKit模块
initUIKit();
// 初始化消息提醒
NIMClient.toggleNotification(UserPreferences.getNotificationToggle());
//关闭撤回消息提醒
// NIMClient.toggleRevokeMessageNotification(false);
// 云信sdk相关业务初始化
NIMInitManager.getInstance().init(true);
// 初始化rts模块
initRTSKit();
}
}
public static LoginInfo getLoginInfo() {
//此处为本地保存的用户相关信息 初始化时可以为null
String account = Preferences.getUserAccount();
String token = Preferences.getUserToken();
if (!TextUtils.isEmpty(account) && !TextUtils.isEmpty(token)) {
DemoCache.setAccount(account.toLowerCase());
return new LoginInfo(account, token);
} else {
return null;
}
}
private void initUIKit() {
// 初始化
NimUIKit.init(this, buildUIKitOptions());
// 设置地理位置提供者。如果需要发送地理位置消息,该参数必须提供。如果不需要,可以忽略。
NimUIKit.setLocationProvider(new NimDemoLocationProvider());
// IM 会话窗口的定制初始化。
SessionHelper.init();
// 聊天室聊天窗口的定制初始化。
ChatRoomSessionHelper.init();
// 通讯录列表定制初始化
ContactHelper.init();
// 添加自定义推送文案以及选项,请开发者在各端(Android、IOS、PC、Web)消息发送时保持一致,以免出现通知不一致的情况
NimUIKit.setCustomPushContentProvider(new DemoPushContentProvider());
NimUIKit.setOnlineStateContentProvider(new DemoOnlineStateContentProvider());
}
private UIKitOptions buildUIKitOptions() {
UIKitOptions options = new UIKitOptions();
// 设置app图片/音频/日志等缓存目录
options.appCacheDir = NimSDKOptionConfig.getAppCacheDir(this) + "/app";
return options;
}
private void initRTSKit() {
RTSOptions rtsOptions = new RTSOptions() {
@Override
public void logout(Context context) {
MainActivity.logout(context, true);
}
};
RTSKit.init(rtsOptions);
RTSHelper.init();
}
}
聊天类App在接入厂商通道后 与IM的融合实现聊天消息即时送达相关:厂商通道接入指北
DEMO源码导读:源码导读
写在最后
如果您在初始化SDK 遇到了状态码错误
可参考: 网易云信Demo-注册状态码错误相关
如果还是不满足您的需求: 状态码
最后
以上就是忧虑路灯为你收集整理的Android网易云信无脑接入(IM+音视频)【网易云信】的全部内容,希望文章能够帮你解决Android网易云信无脑接入(IM+音视频)【网易云信】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复