美文网首页三方
环信的集成

环信的集成

作者: A大心 | 来源:发表于2019-12-31 14:17 被阅读0次

我们采用依赖库的方式进行集成

第一步:官网下载Demo+SDK

http://www.easemob.com/?utm_source=baidu-pp

第二步进行解压:

打开easeui中的build,因为版本问题,如果想去除警告,请修改以下依赖属性:

修改前:

修改后:

然后,其它模块就可以使用它了

错误解决:

EaseChatRowImage

因为版本升高会报一个AsyncTaskCompat找不到:

解决如下:

删掉这块代码(并不是这一行,我只截了一行,整个内部类都删掉)

把以下代码复制上

new AsyncTask<Object, Void, Bitmap>() {

@Override

protected Bitmap doInBackground(Object... args) {

                File file = new File(thumbernailPath);

                if (file.exists()) {

                        return EaseImageUtils.decodeScaleImage(thumbernailPath, 160, 160);

                } else if (new File(imgBody.thumbnailLocalPath()).exists()) {

                        return EaseImageUtils.decodeScaleImage(imgBody.thumbnailLocalPath(), 160, 160);

                }else {

                        if (message.direct() == EMMessage.Direct.SEND) {

                                    if (localFullSizePath != null && new File(localFullSizePath).exists()) {

                                                return EaseImageUtils.decodeScaleImage(localFullSizePath, 160, 160);

                        } else {            

                                       return null;    

                        }

                        } else {

                                        return null;    

                        }

                    }    

                }

protected void onPostExecute(Bitmap image) {

                if (image != null) {

                        imageView.setImageBitmap(image);

                        EaseImageCache.getInstance().put(thumbernailPath, image);

                } else {

                            if (message.status() == EMMessage.Status.FAIL) { 

                                    if (isNetWorkConnected(activity)) { 

                                                new Thread(new Runnable() {  

@Override

public void run() { 

                EMClient.getInstance().chatManager().downloadThumbnail(message);

}

    }).start();

        }    

    }

        }

}

}.execute();

解决EaseImageView类中错误:

修改为以下:

初始化:

EMOptions options = new EMOptions();

// 默认添加好友时,是不需要验证的,改成需要验证

options.setAcceptInvitationAlways(false);

// 是否自动将消息附件上传到环信服务器,默认为True是使用环信服务器上传下载,如果设为 false,需要开发者自己处理附件消息的上传和下载

options.setAutoTransferMessageAttachments(true);

// 是否自动下载附件类消息的缩略图等,默认为 true 这里和上边这个参数相关联

options.setAutoDownloadThumbnail(true);

...

//初始化

EMClient.getInstance().init(applicationContext, options);

//在做打包混淆时,关闭debug模式,避免消耗不必要的资源

EMClient.getInstance().setDebugMode(true);

登录

EMClient.getInstance().login(userName,password,new EMCallBack() {//回调

    @Override

    public void onSuccess() {

            EMClient.getInstance().groupManager().loadAllGroups();

            EMClient.getInstance().chatManager().loadAllConversations();

            Log.d("main", "登录聊天服务器成功!");

}

@Override

public void onProgress(int progress, String status) {

}

@Override

public void onError(int code, String message) {

            Log.d("main", "登录聊天服务器失败!");

}

});

一定记得权限:

<!-- Required -->

<uses-permission android:name="android.permission.VIBRATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.RECORD_AUDIO" />

<uses-permission android:name="android.permission.CAMERA" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.GET_TASKS" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

切记更改APPKEY:

设置环信应用的AppKey :

<meta-data android:name="EASEMOB_APPKEY" android:value="Your AppKey" />

声明SDK所需的service SDK核心功能:

<service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/>

        <service android:name="com.hyphenate.chat.EMJobService"

                android:permission="android.permission.BIND_JOB_SERVICE"

                android:exported="true"

         />

声明SDK所需的receiver:

<receiver android:name="com.hyphenate.chat.EMMonitorReceiver">

        <intent-filter>

                <action android:name="android.intent.action.PACKAGE_REMOVED"/>

                <data android:scheme="package"/>

        </intent-filter>

<!-- 可选filter -->

        <intent-filter>

                <action android:name="android.intent.action.BOOT_COMPLETED"/>

                <action android:name="android.intent.action.USER_PRESENT" /> 

        </intent-filter>

</receiver>

相关文章

  • 环信

    iOS 集成环信(四) 群聊iOS 环信集成(五) 加载会话列表

  • 环信UI3.0的集成方法

    介绍一下把环信EaseUI集成到项目中的具体实现步骤。 1.集成UI之前要把环信的SDK集成到项目中,环信SDK有...

  • iOS开发-集成环信即时通讯会话列表和聊天头像的设置

    环信SDK集成 请参考iOS开发-在现有项目中集成环信SDK及EaseUI或者参考官方文档 此操作只针对已集成环信...

  • 环信

    环信EaseUI 导入环信SDK和EaseUI使用cocoapods集成 集成视频:http://www.imge...

  • iOS 环信集成

    1、流程类: 最新环信V3.3.7单聊集成与使用 iOS环信3.0集成 (三)单聊集成有视频 iOS 环信3.0D...

  • iOS 环信SDK集成

    集成环信SDK:我觉得还是使用cocoaPod方便,几句命令行的事!我们集成环信 IM 2.0 Full: 集成U...

  • iOS集成环信的会话列表

    参考IOS快速集成环信IM - 基于官方的Demo优化,5分钟集成环信IM功能 虽然网上的教程很多,但是自己集成的...

  • IOS环信集成单聊

    最近几天在集成环信 ,文档大概也看了 简单说下集成步骤! 1.SDK集成和环信配置 iOS SDK 介绍及导入 ...

  • iOS 集成环信系统文件报错解决和其他坑

    1.集成环信系统文件报错解决集成环信系统文件报错如何解决1.1找到 EaseUI 下 EaseUI-Prefix....

  • 集成环信

    即时通讯已经是潮流中的潮流尾了,我决定抓住潮流的尾巴,于是集成了一下环信,早就听说环信的集成会有很多坑,确实不少,...

网友评论

    本文标题:环信的集成

    本文链接:https://www.haomeiwen.com/subject/jgeboctx.html