【超全总结】集成环信消息推送注意事项(华为、oppo、vivo等)
环信即时通讯 IM 支持集成第三方厂商的消息推送服务,为 Android 开发者提供低延时、高送达、高并发、不侵犯用户个人数据的离线消息推送服务。
当客户端应用进程被关闭等原因导致用户离线,环信即时通讯 IM 服务会通过第三方厂商的消息推送服务向该离线用户的设备推送消息通知。当用户再次上线时,会收到离线期间所有消息。
目前支持的手机厂商推送服务包括:Google、华为、小米、OPPO、VIVO 和魅族。本文介绍在客户端应用中实现各厂商的推送服务时需要注意的事项。
1.初始化注意事项
参考文档中提供的案例
这部分操作时在环信初始化的时候来进行的
注意:
EMoptions 一定不要重复创建对象 如果重复创建,是不会出现对象重复的报错,因此会导致初始化的时候绑定不上证书 ,所以这块要特别注意
2.FCM推送需要注意事项
(1)FCM推送上传
此图的json文件是需要上传到环信管理后台的并不是给客户端的json
(2)options.enableFCM("") 参数值就是在环信管理后台上传的SenderID
关于客户端绑定的id 在我们的 google-service.json文件中project_number
(3) 如果在接收推送的时候没有出现通知,可以检查下 是否已经在EMFCMMSGService中自己写入了本地通知,环信只为FCM做了一个唤醒需要您自己做本地通知进行展示,如果没有看到通知 但是接收方是有唤醒的,也视为成功,自己评判不准确可以提供接收方的日志提供给环信技术支持查看下
","marks":[{"type":"color","value":"#ffb45f"},{"type":"backgroundColor","value":"rgb(51, 51, 51)"},{"type":"fontFamily","value":"Courier New"},{"type":"fontSize","value":12}]}]}],"state":{}},{"type":"block","id":"LLhI-1665372447646","name":"paragraph","data":{"version":1},"nodes":[{"type":"text","id":"fiGI-1665372447644","leaves":[{"text":"","marks":[{"type":"fontSize","value":12}]}]}],"state":{}}]" style="white-space: normal;">
3.华为推送注意事项
(1)华为的通知在app未上架之前的通知级别默认是不重要通知(运营通知) 只有上线以后才可以自己定义界别 其次可能是因为推送的标题的限制直接到不重要通知中,
(2)支持自定义铃声 华为设备必须安装2.6+以上华为移动服务 还需要开启当前app的启动权限
(3)清单文件中声明appid <meta-data android:name="com.huawei.hms.client.appid" android:value="appid=填写开发者的appid" /> (4)证书上传在管理后台要上传 OAuth2.0客户端 中Client Secret 起首为小写的密钥
(4)证书上传在管理后台要上传 OAuth2.0客户端 中Client Secret
(5)华为厂商集成 需要 导入agconnect-services.json文件 以及 环信封装好的类导入到项目中(HMSPushHelper) 需要在初始化以后 在Mainactivty的onCreate中 引用 HMSPushHelper.getInstance().getHMSToken(this);
HMSPushHelper在环信demo中有提供直接将此类拖入到您的项目中即可使用
(6)华为推送的通知进入到营销通知 去华为官网按照这个看下自动类权益设置一下
4.OPPO推送注意事项
1.环信管理后台截图
(1)OPPO集成的时候 上传证书环信管理后台上传的是MasterSecret 而客户端(AS初始化)上绑定的是AppSecret
2. oppo官网Master位置截图
oppo官方链接: 【推送服务】OPPO PUSH 客户端SDK接口文档(2.1.0版本) - 移动服务 - 开发者社区
(1)客户端绑定证书是Appsecret 调用 enableOppoPush("appkey","appSecret");
(2) SDK 3.7.1-升3.9.0级到 2.1.0 版本初始化添加(HeytapPushManager.init(context,true)), 如果OPPO aar版本为 3.0.0 环信sdk需要升级大于或等于3.9.1 OPPO的通知也会归纳到不重要级别 具体配置需要在OPPO控制台进行自己配置
(样例图中展示SDK是3.8.5 所以使用的oppo2.1.0.aar)
5.VIVO集成注意事项
(1) VIVO 集成 3.9.1或以上需要升级推送版本到3.0.0.4_484,vivo默认是推送是运营消息 重新上传证书需要重新配置,jar包需要放在libs幕布下并sync
(2)vivo需要上架app后才能收到离线推送
更多详细攻略请查看推送文档地址:Android 第三方推送设置 | 环信 IM 文档
相关文章:

【超全总结】集成环信消息推送注意事项(华为、oppo、vivo等)
环信即时通讯 IM 支持集成第三方厂商的消息推送服务,为 Android 开发者提供低延时、高送达、高并发、不侵犯用户个人数据的离线消息推送服务。 当客户端应用进程被关闭等原因导致用户离线,环信即时通讯 IM 服务会通过第三方厂商的消息推送服务向该离线用…...
C++回调函数以及epoll中回调函数的使用
回调函数是一种常用的编程技术,它允许程序在运行时将一个函数作为参数传递给另一个函数,以实现更加灵活和可扩展的功能。在C中,回调函数通常被实现为函数指针或者函数对象。 函数指针是指向函数的指针变量,可以通过它来调用函数。…...

0基础学习软件测试有哪些建议
其实现在基础的资料和视频到处都是,就是看你有没有认真的去找学习资源了,去哪里学习都是要看你个人靠谱不靠谱,再好的教程和老师,你自己学习不进去也是白搭在正式选择之前,大可以在各种学习网站里面找找学习资源先自己…...

MySQL数据类型
文章目录一、数据类型分类二、数值类型1. tinyint 类型2. bit 类型3. int 类型4. float 类型5. decimal 类型三、字符串类型1. char 类型2. varchar 类型3. char 和 varchar 比较4.日期和时间类型5. enum 和 set一、数据类型分类 数据类型本质也是一种约束! 如果插入…...

【设计模式】从Mybatis源码中学习到的10种设计模式
文章目录 一、前言二、源码:学设计模式三、类型:创建型模式1. 工厂模式2. 单例模式3. 建造者模式 四、类型:结构型模式1. 适配器模式2. 代理模式3. 组合模式4. 装饰器模式 五、类型:行为型模式1. 模板模式2. 策略模式3. 迭代器模式…...

爬虫攻守道 - 猿人学第20题 - 殊途同归
写在开头 这题也是,自己搞顶多追踪到wasm代码,然后就走不下去了。找了2个参考方案,自己做的过程中还又遇到些新的问题,下面做个记录。解法1参考文章解法2参考文章 解法1:追根溯源 在 JS 代码中追踪到 Payload 赋值位…...
4.11日报
synchronized 和 ReentrantLock 区别是什么? synchronized 早期的实现比较低效,对比 ReentrantLock,大多数场景性能都相差较大,但是在 Java 6 中对 synchronized 进行了非常多的改进。 主要区别如下: ReentrantLock …...

【LeetCode每日一题: 1039. 多边形三角剖分的最低得分 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】
🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…...

Okio 网络提速
文章目录网络数据处理流程Page Cache传统 I/O 拷贝的性能问题零拷贝技术DMA 技术零拷贝技术分类mmapsendfilespliceDirect I/O零拷贝技术性能分析小结OkioOkio 的使用Okio 网络提速的原理Okio 总结总结网络数据处理流程 在讲 Okio 之前,为了能更好的了解 Okio 的优…...

自动驾驶企业面临哪些数据安全挑战?
近期,“特斯拉员工被曝私下分享用户隐私”不可避免地成了新闻热点,据说连马斯克也不能幸免。 据相关媒体报道,9名前特斯拉员工爆料在2019年至2022年期间,特斯拉员工通过内部消息系统私下分享了一些车主车载摄像头记录的隐私视频和…...

Doris(2):Doris编译部署
1 Doris编译 Apache Doris提供直接可以部署的版本压缩包:https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5 也可以自行编译压缩包后使用(推荐) 1.1 使用 Docker 开发镜像编译(推荐) 这个是官方文档推荐的,…...

使用MyBatis实现简单查询
文章目录一,创建数据库与表(一)在Navicat里创建MySQL数据库testdb(二)创建用户表 - t_user(三)在用户表里插入3条记录二,案例演示MyBatis基本使用(一)创建Mav…...
C指针(*point)[4]和char *point[4]
char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组. char *point[4] // 指针数组。 a[4][5] // 一连串的指针. char (*point)[4] // 一个指针,指向有4个元素的数组;占内存大小为 4 个字节 ch…...

【Bard】谷歌的人工智能工具—Bard初体验
文章目录一、Bard介绍二、Bard体验1、加入Bard的候补名单2、登入Bard篇3、使用Bard篇(1)提供三种预选方式✨(2)创作生成各类文案(3)无生成图画能力(4)支持语音转文本输入✨ÿ…...

2022国赛30:windows脚本题解析
大赛试题内容: ( 九) ) 脚本 【任务描述】 为了减少重复性任务的工作量,节省人力和时间,请采用脚本,实现快速批量的操作。 1.在 windows4 上编写 C:\CreateFile.ps1 的 powershell 脚本,创建20 个文件 C:\test\File00.txt 至 C:\test\File19.txt,如果文件存在,则首先删除…...

Excel常用函数公式20例
目录 一、【IF函数条件判断】 二、【多条件判断】 三、【条件求和】 四、【多条件求和】 五、【条件计数】 六、【多条件计数】 七、【条件查找】 八、【多条件查找】 九、【计算文本算式】 十、【合并多个单元格内容】 十一、【合并带格式的单元格内容】 十二、…...

233:vue+openlayers绘制渐变填充色的圆形、多边形
第233个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中绘制带有渐变填充色的圆形、多边形。这里用canvas的方式去渲染,用到了DEVICE_PIXEL_RATIO,设备上的物理像素与设备无关像素 (dips) 之间的比率 (window.devicePixelRatio)。 直接复制下面的 vue+openlayer…...

Flink的窗口机制
窗口机制 tumble(滚动窗口) hop(滑动窗口) session(会话窗口) cumulate(渐进式窗口) Over(聚合窗口) 滚动窗口(tumble) 概念 滚…...

了解分布式Session
大家好,我这名CRUD工程师又来了,最近我的一个同事突然在看分布式Seesion的问题,然后我们两个也是互相讨论了一下,今天我就想着把分布式Session的知识点好好的梳理一下。 在很多系统中,用户的登录功能都是用Session去实…...

仿真创新大赛—国三省一 智能鱼缸(proteus)(stm32)
⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩去年下半年参加了全国仿真创新大赛,也是取得了国赛三等奖,省赛一等奖的好成绩。 ⏩本篇文章对我们的参赛作品《智能鱼缸》做一个简介。 ⏩感…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...

6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...