2018 融云集成

接入融云

融云SDK满足 App 内的社交沟通需求,提供单群聊、超级群等多种聊天模式,支持红包、图片、语音和小视频,实时消息推送,高度自定义界面,高清音视频通话,有效提升用户粘性和活跃度,所以我用融云。

添加应用

要接入第三方 SDK 都要在其开发者平台注册账号,添加应用,审核获取 appkey secretkey。这样子的流程。然后去看他的 SDK 接入指南。

开始

下载融云 SDK,看你功能需要选择下载。
http://www.rongcloud.cn/downloads

新建项目,引入融云远程库,加入第三方库

    implementation 'cn.rongcloud.android:IMKit:2.8.6'
    implementation 'cn.rongcloud.android:IMLib:2.8.6'

把 下载好的 SDK 中 libs 里面的文件加入到项目lib里面(armeabi里面的libpush.so
以及libsqlite.so)

新建src/main/assets/ 并加入 SDK 里面的 armeabi/push_deamon

Androidmanifest.xml
加入权限

  
    
    
    
    

    
    

    
    
    
    
    
    
    
    
    
    
    

    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
    

    
    
    
    
    
    
    
    
    

新建 Application 在 oncreate 初始化 sdk
因为接入了融云 SDK会有主进程,和推送进程,那我们在主进程进行初始化

    if (applicationInfo.packageName == getCurProcessName(applicationContext)) {
        try {
            RongIM.init(this,Constant.APP_KEY)
        } catch (e: Exception) {
            e.printStackTrace()
        } finally {
        }
        }

然后调用 RongIM.connect,在成功的回调进行内容提供者(设置头像和昵称),token要在后台获取,测试的时候你可以在 应用里面获取 token

   RongIM.connect(token, object : RongIMClient.ConnectCallback() {
                override fun onTokenIncorrect() {
                    //get token again
                }
                override fun onSuccess(userid: String) {
                    progress.visibility = View.GONE
                    connectBtn.text = "欢迎回来$name$userId"
                    RongIM.getInstance().setCurrentUserInfo(UserInfo(userId,name, Uri.parse(image)))
                    RongIM.getInstance().setMessageAttachedUserInfo(true)
                    //用户内容提供者(userid+username+image)
                }
                override fun onError(errorCode: RongIMClient.ErrorCode) {
                    //Ooooop
                }
            }

创建会话列表

�创建ConversationListActivity ,在布局文件加入

  

再注册这个activity,因为是隐式跳转这个 activity 注意 data 的 host 是写自己包名


            
                
                
                
            
        

创建聚合会话列表

创建 SubConversationListActivity ,在其布局文件加入

    

再注册这个activity,因为是隐式跳转这个 activity 注意 data 的 host 是写自己包名

  
        

            
                

                

                
            
        

创建会话

创建 ConversationActivity ,在其布局文件加入

  

再注册这个activity,因为是隐式跳转这个 activity 注意 data 的 host 是写自己包名

   
        
            
                

                

                
            
        

打开会话列表

  private fun startConversationList() {
        val map = HashMap()
        map.put(Conversation.ConversationType.PRIVATE.getName(), false) // 会话列表需要显示私聊会话, 第二个参数 true 代表私聊会话需要聚合显示
        map.put(Conversation.ConversationType.GROUP.getName(), false)  // 会话列表需要显示群组会话, 第二个参数 false 代表群组会话不需要聚合显示
        RongIM.getInstance().startConversationList(this@MainActivity, map)
    }

创建私聊会话

     RongIM.getInstance().startPrivateChat(this@MainActivity, "123456", "userid")

项目地址 https://github.com/gdmec07120731/IMProject

常见问题

connect 无回调,报找不到 libsqlite.so 异常
解决方法 http://support.rongcloud.cn/kb/NTQw

你可能感兴趣的:(2018 融云集成)