环信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.实时数据流传输架构mob64ca12f37e8a的技术博客在大数据时代,实时数据流传输架构变得愈加重要。这种架构让我们能够以低延迟、高吞吐量的方式传输、处理和分析数据,使得企业可以迅速获取关键业务洞察力。本文将探讨实时数据流传输架构的基本概念,以及相关实现的代码示例。 实时数据流的概念 实时数据流是指连续生成的数据流,这些数据通常来自于传感器、服务器日志、社交媒体https://blog.51cto.com/u_16213444/12854373
2.QQ中的4G在线标志,技术原理与含义解析五金交电摘要:,,本文探讨了QQ上4G在线的含义及其技术原理。4G在线是QQ状态的一种显示,表示用户当前使用的设备正在通过4G网络连接到QQ。背后的技术原理涉及到移动网络的演进和QQ软件的功能设计。通过了解4G网络的高速数据http://xjxygt.cn/post/15467.html
3.在线表达式的革命,重塑计算边界与理解之力传输在线表达式作为一种新兴的云计算方式,正在改变我们的计算方式和生活方式,它具有实时性、交互性、便捷性和灵活性等特点,广泛应用于教育、科研、工程和金融等领域,随着技术的不断发展,我们有理由相信,在线表达式的应用场景将更加广泛,为我们的生活和工作带来更多便利。 http://m.zj-xy.net/post/22512.html
4.掌握未来技术,解析强实时性及如何应用于实际任务中的初学者与进阶强实时性系统是指系统对时间要求极为严格,能够在极短的时间内完成数据处理并作出精确响应,在强实时系统中,时间因素直接影响系统的性能与结果,自动驾驶汽车就需要强大的实时计算能力,以确保安全行驶。 认识强实时性的应用领域 强实时性技术在许多领域都有广泛应用,包括但不限于以下几个方面: https://www.shuguo168.com/post/11415.html
5.计算机考研:计算机网络五大考点解析腾讯云开发者社区计算机知识点多且难,一直是学生们头痛的科目之一,我们化繁为简,按照考研计算机专业大纲解析,特归纳出计算机网络五大核心考点以供同学们复习参考。 OSI参考模型的分层结构? OSI七层参考模型图如下: 最底层:物理层(PhysicalLayer)功能:数据物理传输 https://cloud.tencent.com/developer/article/2478828
6.实时,在线方式和离线方式的含义是什么?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
7.实时在线方式和离线方式的含义是什么?实时、在线方式和离线方式的含义是什么? 参考答案:实时:所谓“实时”,是指信号的输入、计算和输出都是在一定时间范围内完成的,即计算机对输入信息以足 点击查看完整答案 您可能感兴趣的试卷 你可能感兴趣的试题 1.问答题什么是计算机监控系统的操作员工作站、通信工作站和培训工作站?http://www.ppkao.com/tiku/shiti/1963998.html
8.实时在线方式和离线方式的含义是什么?【题目】 实时、 在线方式和离线方式的含义是什么? 搜题找答案>08241计算机控制系统试题答案>试题详情 【题目】实时、 在线方式和离线方式的含义是什么? 纠错 查看答案 查找其他问题的答案?https://www.zikaosw.cn/daan/18588476.html
9.计算机网络第六话·数据的传输方式(上)知识点6:数据的传输方式 PS:本期内容包含了数据传输方式的基础内容与对应的一些概念和特点类习题,更多关于大题的计算与深度理解,请敬请期待下期哦~ 6.1 电路交换(Circuit Exchanging) 1.什么是电路交换? 在进行数据传输前,两个结点之间必须先建立一条专用的、双方独占的物理通信路径(由通信双方之间的交换设备和链路https://zhuanlan.zhihu.com/p/506165800
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.武平县公安局第九期公共安全视频监控建设项目货物类采购项目附件系统能支持多种方式的数据传输:可通过FTP或TCP/IP方式将车辆图片、违法图片、车辆通过信息(时间、地点、车牌号码、车身颜色等)、设备监测数据等上传到中心管理系统;也可在中心通过网络调用或下载操控前端设备存储的数据。 系统应能支持数据的断点续传:如因网络中断或其它故障,数据无法上传至管理中心时,可暂时将数据存储http://zfcg.longyan.gov.cn/upload/document/20211027/8f239fdf66564012af5845ec4fa0aa9b.html
13.奥鹏作业答案优学网可做奥鹏全部院校作业、国开形考作业答案、在线作业、离线作业、毕业论文,答案联系 微信:wxxygzs 22春北京中医药大学《计算机基础》平时作业4(在线答案) 试卷总分:100 得分:100 一、单选题 (优学网(www.youxue100f.com)共 100 道试题,共 100 分) 1.下面说法正确的是( ) http://www.youxue100f.com/a/zgyk/2022-04-20-8204.html
14.电脑翻译语音软件手机字幕翻译语音(34篇)可以预见,随着实时翻译语音字幕技术的不断发展和普及,它将在更多领域展现出巨大的应用潜力,为人类社会的交流方式带来革命性的变革。 未来交流的新方向 实时翻译语音字幕技术的出现,标志着人类社会交流方式的一次革命。在未来,随着科技的进一步发展和普及,实时翻译语音字幕技术将迎来更加广阔的发展空间,成为推动全球交流的https://shishifanyi.com/tag/?url=1227
15.法学:电子商务法律法规考试题库(考试必看)考试题库A.只是交易方式的电子化 B.其交易过程一般是在线订货、支付 C.其交易过程一般是离线送货 D.其交易过程一般是在线订货、支付和送货 点击查看答案 39、填空题 广义的电子商务是指所有利用()和()进行的商业贸易活动。 点击查看答案 40、名词解释 完全独立的服务器 点击查看答案 41、多项选择题 数据库特殊权利,http://www.91exam.org/exam/87-1478/1478378.html
16.ApacheDoris实时数据仓库的构建与技术选型方案数据仓库想必每个行业从业者都在以各式各样的方式进行实践和应用,在久远一点叫做离线数仓,后来由被称为数据中台等演化名称,再往后,又衍生到现代化实时数据栈这样的概念中,但说到底,终究还是为了解决数据的接、存、管、算、查这五个要义的,无论是多么具有附加价值的其他能力,也都是围绕这五个基本核心功能延展的。 https://developer.aliyun.com/article/1424133
17.房产市场信息系统技术规范相对于在线方式,另一种申请方式为离线方式,即房地产开发企业在本地计算机填写好预售申请,保存为文件,再上传到本子系统中。 5.2 功能要求 5.2.1 说明预售许可管理功能包含的内容。 商品房预售许可证的申请、审批、发放是新建商品房网上备案子系统的重要过程。 https://www.jianshu.com/p/28dfd9d99d50
18.Odoo14版本发行说明,全面了解新特性和变化Odoo中文应用商店财务报告的新设计,显示了每个部分的含义。 审计 跟踪对以下科目过帐条目的修改:帐户,标签,参考,标签(税格),到期日。 自动输入 将自动转帐应用于特定合作伙伴;使公司间交易更容易;一个向导,用于在向导中生成和传输预览条目。 现金 为现金舍入定义两个不同的帐户-一个用于损益,一个用于损益。 https://www.sunpop.cn/odoo14_features_new/
19.使用DataSync迁移数据到GaussdbTDataSync支持GaussDB 100(GaussDB T)在线迁移和Sybase、Oracle、MySQL、 GaussDB 100 V100R003C10、SQL Server离线迁移两种数据迁移方式。配置好源库以及目标库相关配置信息后,启动迁移工具即可,运行过程中会生成相关的日志文件和报告,便于用户进行日常的管理及维护。 https://blog.itpub.net/29715045/viewspace-2681966/
20.北部湾旅:首次公开发行股票招股意向书股票频道Online To Offline(在线离线/线上到线下),是指将线下的商 O2O 模式 指 务机会与互联网结合,让互联网成为线下交易的前台 是健康(Health)、安全(Safety)和环境(Environment)三 HSE 管理 指 位一体的管理体系 LPG 指 液化石油气(Liquefied petroleum gas) LNG 指 液化天然气(Liquefied natural gas) CNG 指 压缩https://stock.stockstar.com/notice/JC2015030300000062_127.shtml
21.上海联净上海联净有序发展事业合伙人,形成共享愿景、共谋发展、共创价值的“合伙人机制”。机制旨在通过制度性安排,以长期激励为导向,从根本上激发合伙人的能动性,实现聚合效应。 “共创共赢”的基调下,合伙人在所在的领域内大力推行上海联净的优质产品及系统服务。依靠上海联净质量、品牌、培训等诸多优势,通过平台助力和自身https://www.legion.com.cn/feed1.html
22.状态监测与故障诊断技术在电厂设备管理中的应用2.1 状态监测与故障诊断技术的含义 设备的状态监测通常是指通过测定设备的某一特征参数(如振动、温度),来检查其状态是否正常。当特征参数小于允许值时认为正常,否则认为异常。而设备故障诊断技术是通过了解和掌握设备在线使用的状态,结合设备的运行历史,对设备可能要发生的或已经发生的故障进行预报、分析、判断,确定故障https://www.iianews.com/ca/_01-ABC00000000000111129.shtml
23.不良事件报告范文12篇(全文)MAUDE数据库完全对公众开放, 提供在线检索和离线下载两种方式。使用在线检索功能时, 可以一个词、词组或年份作为检索关键词, 也可以进一步使用高级检索功能, 选择其他的检索标准。网上检索易于操作, 适合一般公众使用;可下载文件则包含了网站搜索可以获得的所有报告的信息, 这些文件采用管道线 (“|”) 分隔格式, 所有https://www.99xueshu.com/w/ikey9wajeuvc.html