我是靠谱客的博主 忧虑路灯,最近开发中收集的这篇文章主要介绍Android网易云信无脑接入(IM+音视频)【网易云信】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

接入前的准备工作如下:

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+音视频)【网易云信】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部