环信IM集成指南Android端常见问题整理IMGeek开发者社区移动开发者社区开源社区

1、如何修改系统通知中的头像和用户名系统通知是在主module中自己写的,demo中是AgreeMsgDelegate,InviteMsgDelegate,OtherMsgDelegate中去修改头像和用户名。

2.如何修改会话列表中系统消息的头像和消息里的环信ID?

在创建系统消息的时候,去修改设设置的username。系统消息的创建一般在好友监听和群监听中。

获取单个用户的token需要调rest接口去获取。文档中的RequestBody要修改一下使用:

{"grant_type":"password",

"username":"omg2",

"password":"123456"}

4.设置群组全员禁言后,怎么获取该群组是否是全员禁言状态调用获取群组详情的api拿到EMGroup对象,然后再调用isAllMemberMuted去获取是否全员禁言。

EMGroupgroup=EMClient.getInstance().groupManager().getGroupFromServer(groupId);

group.isAllMemberMuted();

13.如何设置是听筒模式还是扬声器?回答:easeimkit中isSpeakerOpened()回调中去设置。

在easeimkit中没有将发送成功的事件,回调到fragment中,如果用户需要在自定义view中用的话,继承EaseChatRow并重写onMessageSuccess()。22.如何实现一键已读功能?可以调用将所有消息置为已读的api:

24.如何设置在线消息免打扰?单个会话的免打扰模式您可以自己去实现,要自己去维护一个免打扰list集合,当监听到有消息时,去判断下是否是免打扰用户,如果是免打扰用户,就不去提醒。群组免打扰:可以使用rest去设置。("notification_ignore_群组id":true)

25.搜索会话列表如何根据昵称搜索(或者根据其他某个字段去搜索)。可以把会话显示的昵称(或某个字段)放在会话的扩展里,搜索的时候遍历会话扩展里的昵称。

26.群公告的长度有限制吗?

群公告不能超过512字符。

27.如何设置群扩展字段1.通过EMGroupOptions的extField设置的扩展字段。2.从服务器获取群组信息,获取getExtensionEMGroupgroup=EMClient.getInstance().groupManager().getGroupFromServer(groupId);group.getExtension();

28.oppo推送报空指针Process:com.example.is,PID:24696java.lang.NullPointerException:Attempttoinvokevirtualmethod'android.content.pm.PackageManagerandroid.content.Context.getPackageManager()'onanullobjectreferenceatcom.heytap.mcssdk.d.a(UnknownSource:7)atcom.heytap.mcssdk.d.l(UnknownSource:6)atcom.heytap.mcssdk.d.n(UnknownSource:0)atcom.heytap.msp.push.HeytapPushManager.isSupportPush(UnknownSource:4)atcom.hyphenate.push.platform.oppo.a.b(UnknownSource:0)atcom.hyphenate.push.platform.a.a(UnknownSource:6)atcom.hyphenate.push.EMPushHelper.a(UnknownSource:145)atcom.hyphenate.push.EMPushHelper.register(UnknownSource:35)atcom.hyphenate.chat.EMClient$7.run(UnknownSource:204)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)atjava.lang.Thread.run(Thread.java:919)需要在application中对oppo进行初始化(如下图)。

29、android端本地在构造图片消息时可以设置缩略图大小

(EMImageMessageBody.setThumbnailSize())也可以在console后台进行设置.

30、接收方接收到图片消息后为什么remoteUrl和thumbnailUrl是一样的

服务端只存储原图,如果需要下载缩略图得话,在header中添加thumbnail:true”,当服务器看到过来的请求的header中包括这个的时候,就会返回缩略图,否则返回原始大图。

31、环信即时推送一次性可以给多少用户推送消息?

回答:一次可以推100个

32、漫游功能可以配置过滤cmd、已读回执等消息

需要联系环信工作人员进行配置

33、如果是内网环境、物联网定向流量卡等需要配置域名白名单或者ip白名单允许访问环信接口

(以上需要先对接商务验证身份后会提供对应的域名或者ip地址)

35、批量获取用户属性一次性最多获取100个id属性超过的可以分段获取

36、开通敏感词后发现默认词库过滤了自己想要的词汇

导致消息发送失败或者以*号展示

这种情况下可以联系环信这边配置敏感词白名单进行过滤(需要提供appkey和需要添加白名单的词汇)

这个有2种解决方式

38、关于Android第三方推送对接

比如极光厂商对接、阿里云推送厂商对接、友盟厂商对接这些目前来看都是可以实现的只不过需要客户侧做一些特殊处理,对应推送厂商的sdk可以不用在重复进行依赖,环信这边只需要在console后台上传证书信息并在端上初始化sdk的时候配置push信息、获取到第三方推送厂商返回的devicetoken并上传给环信进行绑定即可。

41、rest发送消息可以设置ip白名单

也就是说可以配置自己服务器的ip,除了该服务器可以访问环信其它ip的请求全部过滤,防止重要信息泄露后有人故意往调用发送消息接口(这个在console后台安全配置可以设置)

43、推送扩展字段结构其中e为完全用户自定义扩展

{"payload":{"ext":{"em_apns_ext":{"em_push_title":"您有一条新消息","em_push_content":"您有一条新消息","test1":"1","test2":"2","extern":{"test3":"3","test4":"4"}}}}}自定义负载支持方式为,主动构建如下结构{"t":"toUsename","f":"fromUsername","m":"msg_id","g":"group_id","e":{}}

1、当extern不存在时,e内容为em_apns_ext下push服务未使用字段。具体为移除em_push_title,em_push_content,em_push_name,em_push_channel_id,em_huawei_push_badge_class字段后剩余所有。如上则为

{"e":{"test1":"1","test2":"2"}}

2、当extern存在时,使用extern下字段。如上则为

{"e":{"test1":"3","test2":"4"}}

49.如何添加自定义的表情(类似于demo中的兔斯基)回答:1.在聊天页面(ChatFragment)中添加://添加扩展表情chatLayout.getChatInputMenu().getEmojiconMenu().addEmojiconGroup(EmojiconExampleGroupData.getData());2.在applicaiton中注册一下Delegate。。EaseMessageTypeSetManager.getInstance().addMessageType(EaseExpressionAdapterDelegate.class)//自定义表情50.出现下图报报错

60、Android11报崩溃异常,报错如下:

java.lang.RuntimeException:Unabletostartreceivercom.hyphenate.chat.EMMonitorReceiver:java.lang.IllegalStateException:NotallowedtostartserviceIntent{cmp=com.ant.health/com.hyphenate.chat.EMChatService}:appisinbackgrounduidUidRecord{ab5b452u0a320RCVRidlechange:uncachedprocs:1seq(0,0,0)}

A:去掉以下这几个方法,这几个方法对于安卓低版本保活的,对于高版本,这个保活可以去掉。高版本对保活有限制。

61、添加回调规则添加失败。A:检查下回调规则名称是不是用的汉字,回调规则只能是数字、字母,不能用汉字。

62、对方离线了之后,发送的消息,上线后如何获取?A:对方离线,消息会进入离线队列,如果没有集成第三方厂商离线推送,用户上线后,服务器下发给客户端。

63、调用SDK方法报错:Cannotreadproperty'lookup'ofundefined?A:因为未登陆成功就调用了SDK的api,需要在onOpened链接成功回调执行后再去调用SDK的api。

64、聊天室如何获取历史消息?A:两种方式:1、环信服务器端主动推,需要联系商务开通服务,默认10条,数量可以调整。2、通过消息漫游接口自己去拉取历史消息,各端都有提供拉取漫游消息接口。

65、拉取消息漫游,conversationId是怎么获取的?A:单聊的话,conversationId就是对方用户的环信id。群聊或聊天室的话,conversationId就是groupid或者chatroomid。

66、如何实现只有好友才可以发消息?A:可以使用环信的发送前回调服务,消息先回调给配置的回调服务器,然后去判断收发双方是否是好友关系,如果是好友关系,那么下发消息,如果是非好友关系,则不下发消息,客户端ui可以根据不下发返回的code做提示。

68、调修改群信息报错如下System.Net.WebException:“远程服务器返回错误:(400)错误的请求。A:检查下请求体,看下参数格式是否正确,比如"membersonly",,"allowinvites"这两个参数的值为布尔值。

69、注册用户username是纯数字可以吗。

调restapi是可以的,serversdk的话,为了让用户使用更规范的名字,命名规则更严格一些,要求首位是字母。

自定义铃声自定义播放铃声需要携带扩展字段em_apns_ext下面携带的就是标题和内容em_android_push_ext下就是存放小米的通道id的直接调用rest接口去创建小米的通道,同时设置下铃声

71、push推送后点击通知栏后在哪里设置跳转页面?小米的在onNotificationMessageClicked里去解析MiPushMessage的content,拿到对应字段去自行跳转页面vivo的在onNotificationMessageClicked里解析UPSNotificationMessage,拿到对应字段去自行跳转页面OPPO的跟华为是一样的,在启动页的onCreate里去获取参数跳转Bundlebundle=getIntent().getExtras();if(bundle!=null){Stringf=bundle.getString(f);Stringt=bundle.getString(t);}字段对应的含义f:fromt:tom:msgidg:groupid.

72、在线push推送:在线推送的话3.8.7sdk已经封装在线push推送如果想收到推送消息的话,需要自己做cmd消息接收本地通知3.8.5的话需要自己去发一条cmd消息携带扩展字段,端上接收到以后做一个本地通知。

75、头像昵称用url获取:只需要保证你返回得easeuser对象得数据是需要展示得ui得数据即可,不需要去管会话列表。。。可以打印在setUserProvider,看下返回得username数据,加入会话列表有十个,那么就会返回这个十个会话得username,然后,你需要根据返回得username去本地数据库查询对应得头像和昵称,如果有,就返回,如果没有就从网络请求并存数据,并去刷新会话列表,刷新会话列表得原因就是因为只要刷新就会再次执行setUserProvider,就又走一边这个逻辑,从数据库取如果用环信的room数据库进行存储直接将demo中的db文件下所有类拉入自己的项目中

77、用户A给B发送自定义消息,B可以收到,后台拿用户A的账号给用户B发送,B也可以收到消息,但是用户A的聊天页面不显示发送消息的内容服务端:AsendcustommessageB,B看到自定义消息CsendcmdmessageA,携带自定义消息内容、A、B客户端:Areceivecmdmessage--->解析message--->向B的会话插入以A身份发的自定义消息

78、解决UTF-8解决问题的步骤:

步骤1、首先,在项目build.gradle文件中添加如下代码:buildscript{tasks.withType(JavaCompile){//解决编码错误:编码UTF-8的不可映射字options.encoding="UTF-8"}}

步骤2、如果导入AS后,文件代码注释出现乱码问题。将AS右下角“fileencoding”编码格式,先改为“GB2312”,弹出对话框,选择“reload”,此时注释乱码消失。接着再改为“UTF-8”,弹出对话框,选择“convert”,即可。

注意事项:(1)目前只支持华为EMUI10以上的系统。(2)华为EMUI10以上自定义推送铃声,需要设置channel_id,通过em_push_channel_id进行设置。需要注意的是,即使指定了渠道标识(channelid),消息最终能否展示在应用渠道上,受用户终端上该渠道是否创建以及渠道的开关策略控制。a、如果本地已经创建该渠道,且已设置了对应的自定义铃声,收到推送消息时会播放自定义铃声。b、如果本地没有创建指定的渠道,则华为会对消息进行智能分类,根据消息设置的级别及智能分类的结果,两者取低,根据级别下发到服务提醒,普通通知与营销通知三个中的一个通知渠道,如果该通知渠道之前没有创建且不是营销通知,则设置自定义铃声有效。(3)对于华为EMUI10以上系统,需要添加em_push_name和em_push_content参数,否则容易被华为通知智能分类分到营销通知渠道,从而不能播放自定义铃声。(4)由于铃声是通知渠道的属性,因此铃声仅在渠道创建时有效,渠道创建后,即使设置自定义铃声也不会播放,而使用创建渠道时设置的铃声。83、fcm离线push通知栏是正常显示但是EMFCMMSGService的onMessageReceived不走设置下这个data数据,onMessageReceived没有执行的原因是没有data数据。

87、怎么全局搜索?调这个接口,不传from字段,实现全局搜索,

94、Android百度地图怎么替换为高德地图?1.将easeimkit中关于百度地图的集成去掉,改成高德地图;2.在chatfragment中重写位置的点击事件方法startMapLocation或者是直接在EaseChatFragment中直接修改点击事件startMapLocation跳转到高德地图;3.在调用环信api去发送地理位置消息时,传入高德获取到的经纬度。

95、Rest发消息会话列表为什么获取不到?默认rest消息不写会话列表,如果需要的话,可以联系对接商务开通该项服务。

96、appkey获取会话列表服务是开通状态,但获取不到会话列表?检查下用户id是不是大小写混写了,大小写混写会导致获取不到会话列表,如果自己应用有区分大小,登陆环信时建议全部转为小写。

97、拉黑与被拉黑发送消息返回什么错误码?A拉黑B,A可以给B正常发消息,B给A发消息会提示报错,3.6.3的返回604错误码,Android返回210错误码

98、不注册环信id可以收发消息吗?业务场景支持游客模式,不需要注册的。使用环信必须要注册环信id,对于环信来说,收发消息的双方是环信id,环信并不关心该用户是客户业务系统里的哪个用户,游客也是客户业务的定义,环信本身不存在游客的说法,任何身份的用户对于环信来说就是一个环信id。

THE END
1.QQ中的4G在线标志,技术原理与含义解析五金交电摘要:,,本文探讨了QQ上4G在线的含义及其技术原理。4G在线是QQ状态的一种显示,表示用户当前使用的设备正在通过4G网络连接到QQ。背后的技术原理涉及到移动网络的演进和QQ软件的功能设计。通过了解4G网络的高速数据http://xjxygt.cn/post/15467.html
2.实时数据流传输架构mob64ca12f37e8a的技术博客在大数据时代,实时数据流传输架构变得愈加重要。这种架构让我们能够以低延迟、高吞吐量的方式传输、处理和分析数据,使得企业可以迅速获取关键业务洞察力。本文将探讨实时数据流传输架构的基本概念,以及相关实现的代码示例。 实时数据流的概念 实时数据流是指连续生成的数据流,这些数据通常来自于传感器、服务器日志、社交媒体https://blog.51cto.com/u_16213444/12854373
3.重新定义数字时代的差距与连接,探索在线与离线的新境界摘要:本文探讨了数字时代的差距与连接问题。随着互联网的普及,人们之间的距离似乎变得越来越近,但同时也存在着不可忽视的差距。本文将分析这种差距的来源,并探讨如何通过新的方式重新定义数字时代的连接,以实现更加平等和高效的https://hnjwwzy.cn/post/223.html
4.在线表达式的革命,重塑计算边界与理解之力传输在线表达式作为一种新兴的云计算方式,正在改变我们的计算方式和生活方式,它具有实时性、交互性、便捷性和灵活性等特点,广泛应用于教育、科研、工程和金融等领域,随着技术的不断发展,我们有理由相信,在线表达式的应用场景将更加广泛,为我们的生活和工作带来更多便利。 http://m.zj-xy.net/post/22512.html
5.掌握未来技术,解析强实时性及如何应用于实际任务中的初学者与进阶强实时性系统是指系统对时间要求极为严格,能够在极短的时间内完成数据处理并作出精确响应,在强实时系统中,时间因素直接影响系统的性能与结果,自动驾驶汽车就需要强大的实时计算能力,以确保安全行驶。 认识强实时性的应用领域 强实时性技术在许多领域都有广泛应用,包括但不限于以下几个方面: https://www.shuguo168.com/post/11415.html
6.深入理解HTTP协议:从基础到实践全解析在当今数字化时代,HTTP 协议如同互联网世界的“语言”,支撑着无数网页浏览、数据传输和在线交互。无论你是初涉编程的新手,还是经验丰富的开发者,深入掌握 HTTP 协议都至关重要。今天,就让我们一起揭开 HTTP …https://zhuanlan.zhihu.com/p/12837229379
7.实时,在线方式和离线方式的含义是什么?20岁,女性,人院前2周间歇性发热并有寒战,夜间体温39℃。发热期间左腹股沟有疼痛、肿胀。伴食欲缺乏,恶心、呕吐,时有咳嗽。体检左腹股沟有3cm×5cm肿块,肝、脾略肿大,腹部见玫瑰疹。血白细胞1.5×109 /L,中性粒细胞0.70×109/L,淋巴细胞0.36×109 /L,单核细胞0.04×109 /L。肝功正常,腹股沟https://www.shuashuati.com/ti/1d46a43729e74fce9d6abaf97383d863.html
8.实时在线方式和离线方式的含义是什么?4.问答题什么是分布式I/O模块? 参考答案:由I/O模块和具有通信功能的数据处理模块构成,符合一定的通信协议,可放在现地控制单元本体以外一定的距离处,以通信方式实现 点击查看完整答案 5.问答题什么是现场总线系统?它由哪几层构成? 参考答案:现场总线是在现地主要自动化装置和控制层的自动化设备之间,通过共用通http://www.ppkao.com/tiku/shiti/1963998.html
9.实时在线方式和离线方式的含义是什么?【题目】 实时、 在线方式和离线方式的含义是什么? 搜题找答案>08241计算机控制系统试题答案>试题详情 【题目】实时、 在线方式和离线方式的含义是什么? 纠错 查看答案 查找其他问题的答案?https://www.zikaosw.cn/daan/18588476.html
10.计算机控制技术复试面试(一)计算机控制面试问题总结(1)实时数据采集:对被控量的瞬时值进行检测,并输入给计算机。 (2)实时决策:对采集到的表征被控参数的状态量进行分析,并按已定的控制规律,决定下一步的控制过程。 (3)实时控制:根据决策,适时地对执行机构发出控制信号,完成控制任务。 5.实时、在线方式和离线方式的含义是什么? https://blog.csdn.net/weixin_44141520/article/details/115273613
11.海康威视IVMS4200设备添加和预览怎么配置?监控安装网在线,就代表添加成功,可以直接进入主预览界面查看监控画面 离线,那就注意一下电脑左下角的报错提示是什么,我们可以根据具体报错来找添加失败的原因。 02、实时预览 设备添加成功后,点击左上角图标,然后点击主预览进入软件预览界面 进入主预览界面后,点击监控点下方的分组,可以通过三种方式预览监控点画面 http://www.zdxt.net/show-65-3215.html
12.法学:电子商务法律法规考试题库(考试必看)考试题库A.只是交易方式的电子化 B.其交易过程一般是在线订货、支付 C.其交易过程一般是离线送货 D.其交易过程一般是在线订货、支付和送货 点击查看答案 39、填空题 广义的电子商务是指所有利用()和()进行的商业贸易活动。 点击查看答案 40、名词解释 完全独立的服务器 点击查看答案 41、多项选择题 数据库特殊权利,http://www.91exam.org/exam/87-1478/1478378.html
13.数字医学范文从数字医学实践探讨其含义,我理解就是要充分运用信息传递的快捷性、信息共享的便捷性等数字技术的优势,准确快速地汇集和分析各种资料,进行队列研究及RCT研究,为各项疾病的规范性诊治“指南”、“共识”的制定、医疗机构等级评定、医保的范畴决策等提供依据,以及通过高层次的行政管理、学术规范管理举措,进一步规范医疗行为https://www.youfabiao.com/haowen/49851.html
14.ApacheDoris实时数据仓库的构建与技术选型方案数据仓库想必每个行业从业者都在以各式各样的方式进行实践和应用,在久远一点叫做离线数仓,后来由被称为数据中台等演化名称,再往后,又衍生到现代化实时数据栈这样的概念中,但说到底,终究还是为了解决数据的接、存、管、算、查这五个要义的,无论是多么具有附加价值的其他能力,也都是围绕这五个基本核心功能延展的。 https://developer.aliyun.com/article/1424133
15.玻璃知识概要房扬州装饰扬州家装扬州装修设计11、U值有几种测试方法?各有什么特点? 有2种测试方式,光谱测量计算法、热箱法,其特点如下: 光谱测量计算法具有测试准确、可变换玻璃组合、便于应用的优点。目前国际上普遍采用此法。 热箱法具有测试结果真实的优点,缺点是测试成本高、误差大,测试结果仅适用于被测的玻璃结构。 https://www.yzzs.cn/zhuangxiu/fang/a/436e142784d251e09be7798f826e606b.html
16.上海联净上海联净有序发展事业合伙人,形成共享愿景、共谋发展、共创价值的“合伙人机制”。机制旨在通过制度性安排,以长期激励为导向,从根本上激发合伙人的能动性,实现聚合效应。 “共创共赢”的基调下,合伙人在所在的领域内大力推行上海联净的优质产品及系统服务。依靠上海联净质量、品牌、培训等诸多优势,通过平台助力和自身https://www.legion.com.cn/feed1.html
17.武平县公安局第九期公共安全视频监控建设项目货物类采购项目附件系统能支持多种方式的数据传输:可通过FTP或TCP/IP方式将车辆图片、违法图片、车辆通过信息(时间、地点、车牌号码、车身颜色等)、设备监测数据等上传到中心管理系统;也可在中心通过网络调用或下载操控前端设备存储的数据。 系统应能支持数据的断点续传:如因网络中断或其它故障,数据无法上传至管理中心时,可暂时将数据存储http://zfcg.longyan.gov.cn/upload/document/20211027/8f239fdf66564012af5845ec4fa0aa9b.html
18.状态监测与故障诊断技术在电厂设备管理中的应用3.1 离线监测 状态监测现有的主要离线仪器主要有多功能数据采集器及其配套软件、红外热像仪及其配套软件、真空测漏仪和轴承听诊器,对#2机组的大型关键辅助设备安装了在线监测系统,各运行、检修班组均配置了测振仪、点温仪、转速表等先进监测设备。 根据设备点检分工原则,对设备的检测点制定了检测周期,点检标准和点检路线https://www.iianews.com/ca/_01-ABC00000000000111129.shtml
19.施工企业年度总结(通用15篇)总结就是把一个时间段取得的成绩、存在的问题及得到的经验和教训进行一次全面系统的总结的书面材料,它可以明确下一步的工作方向,少走弯路,少犯错误,提高工作效益,不妨让我们认真地完成总结吧。但是却发现不知道该写些什么,下面是小编帮大家整理的施工企业年度总结,供大家参考借鉴,希望可以帮助到有需要的朋友。 https://www.ruiwen.com/gongwen/nianduzongjie/845848.html