Android集成推送

阿里云移动推送的接入和踩坑 近期由于业务需求,要换掉以前的推送,首先选择了阿里云推送,官方介绍阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能,在实现高效、精确、实时的移动推送的同时,极大地降低了开发成本。让开发者最有效地与用户保持连接,从而提高用户活跃度、提高应用的留存率。那么接下来我们就一起看看是如何接入的。 一. 在阿里云后台创建自己的... 阅读详情

说起推送,这种第三方的平台很多,每个公司都可能用的不一样,之前我项目里都是用的Jpush,具体怎么配置就不多说了,不管用什么平台,就总结一点:集成的大体东西都基本一样。最近手头的这个项目用的是阿里云的移动推送。就简单说一下这个推送的集成。
不管哪个平台,大致都要先去注册应用,获取相应的appkey和appsecret。
正文:
第一步:用Maven快速集成进行配置。
文档地址:https://help.aliyun.com/document_detail/51056.html?spm=a2c4g.11186623.6.623.43da7fa8oUfFFH#h2–maven-1
进去照着配置就行了。就说一点:如果是快速集成(官方也建议采用此方式集成),Manifest不需要配置那些权限和其他相关组件配置,其他的不过多解释。
也就说清单文件只需要配置如下两项即可。

 <!-- 阿里云推送相关(配置appkey和appsecret) -->
        <meta-data
            android:name="com.alibaba.app.appkey"
            android:value="你的appkey" />
        <meta-data
            android:name="com.alibaba.app.appsecret"
            android:value="你的appsecret" />
        <!-- 消息接收监听器 (用户可自主扩展) -->
        <receiver
            android:name=".receiver.MyMessageReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.alibaba.sdk.android.push.RECEIVE" />
            </intent-filter>
        </receiver>

自定义一个MyMessageReceiver用来接收通知的接收和点击事件的相关处理。配置就算完成了。
第二步:初始化SDK
官方文档也说明了,初始化放在application中。如下:

private void initCloudChannel(AppApplication applicationContext) {
        PushServiceFactory.init(applicationContext);
        CloudPushService pushService = PushServiceFactory.getCloudPushService();
        pushService.register(applicationContext, new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                Log.e(TAG, "init cloudchannel success");
//                Log.e("===id", pushService.getDeviceId() + "");
            }

            @Override
            public void onFailed(String errorCode, String errorMessage) {
                Log.e(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
            }
        });
    }

第三步:绑定推送标识
这个自行决定用什么字段作为推送的唯一标识,这里我用的是user_id。在获取到user_id的地方绑定即可。如下:

//阿里云推送绑定账户
PushServiceFactory.getCloudPushService().bindAccount(user_id, new CommonCallback() {
            @Override
            public void onSuccess(String s) {

            }

            @Override
            public void onFailed(String s, String s1) {

            }
        });

第四步:接收推送内容,处理点击事件
这个主要就是看Recriver了,就是上面定义的MyMessageReceiver,代码如下:

public class MyMessageReceiver extends MessageReceiver {

    /**
     * 接收到通知的回调
     */
    @Override
    public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
        //8.0适配
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            NotificationChannel channel = new NotificationChannel("1", "name", NotificationManager.IMPORTANCE_HIGH);
            manager.createNotificationChannel(channel);
        }
    }

    /**
     * 点击通知的回调
     */
    @Override
    public void onNotificationOpened(Context context, String title, String summary, String extraMap) {
        try {
            JSONObject object = new JSONObject(extraMap);
            String param= object.optString("param");
            if (!TextUtils.isEmpty(param) ) {
                Intent intent = new Intent(context, XXXActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.putExtra("param", param);
                context.startActivity(intent);
            }
        } catch (JSONException ignored) {
        }
    }
}

这里要注意Android8.0通知的显示和点击事件问题,8.0以上必须要设置通知渠道才能正常显示通知,不然收到了通知也显示不出来。
适配8.0 的通知主要注意以下几点:
1:必须设置通知渠道和渠道name,都不可为空,缺一不可,不然不显示。
2:必须设置setSmallIcon,不然不显示。
3:设置setContentIntent一定要在notify之前。不然不显示。

关于推送参数的获取,可以通过extraMap来解析获取就可以了。然后添加到intent中传递到目标Activity即可。

还要额外注意一点:关于在跳转目标Activity中参数的接收。
生命周期有可能会走:onCreate,也有可能会走:onNewIntent。因此最好的方法就是先在这两个生命周期中,都定义好处理通知的方法dealNotice(Intent intent);,最后统一处理即可。

第五步:必要的时候进行解绑(比如退出登录了)

PushServiceFactory.getCloudPushService().unbindAccount(new CommonCallback() {
                @Override
                public void onSuccess(String s) {
                    Log.e("===unbindSuccess", s);
                }

                @Override
                public void onFailed(String s, String s1) {

                }
            });

在实际项目中,发送9.0的手机初始化就有问题,提示网络配置错误,让检查网络配置,这实际上就是阿里的推送没适配9.0系统的https网络安全。解决办法网上也是有的,很简单,如下:
清单文件的application节点下添加:

android:usesCleartextTraffic="true"
Android 华为推送服务集成 我的AS是3.5.2的,如果你的AS还是低于3.X以下的版本,比如2.X的版本的话,你就需要升级AS了,可以参考我写的关于AS安装配置的文章,里面有详细的说明。这里会一步一步的检查你的所有配置,如果出现检查不通过的项,请根据界面提示和点击“Link”手动设置,如下图所示。当你的AS的右下角出现这样的提示时,说明你的APK构建成功了,这个APK你是可以发给其他人的,都是可安装的。点击这个Generate按钮,会创建SHA56指纹,这里的指纹和你之前通过jks生成的是一致,如果不一致,说明你的jks不对。 阅读详情

相关推荐

Android集成华为推送

Android集成华为推送 1.注册成为开发者   这个没什么好讲的,照做就行了。之后就是在控制台创建应用巴拉巴拉的   需要注意的是SHA256指纹:   SHA256你在控制台可以填好几个,博主建议填两个。一个是debugkeystore的SHA256(也就是你本机的SHA256),另一个是.jks签名文件里面的SHA256。 2.配置HM...

liangfeng093的博客 2771

Android集成阿里云消息推送的方法步骤

一 创建App应用1.1 在控制台发(https://mhub.console.aliyun.com)的App列表页,点击页面产品列表中“添加产品”的图标即可创建一个新的产品(产品是一个集合的概念,产品下包含iOS应用、Android应用)。然后点击刚创建的产品,点击“添加应用”的图标即可添加Android或者iOS应用(目前只能创建分端应用了,个人感觉还是不分端的好)。1.2 输入APP基本信息...

风吹裤裤的海量 2万+

Android集成小米推送教程

前言 目前Android应用在后台杀死进程之后,就收不到通知了,想要接收消息推送,需要集成各个厂商的推送SDK,以小米为例 1.接入前准备 1. 登录小米开发者网站(https://dev.mi.com/console/appservice/),创建App并获取AppId,AppKey和AppSecret。 2. 下载Android客户端SDK压缩包。 下载地址:http://dev.xiaomi.com/mipush/downpage/。 压缩包中包含了Server SDK、Clie.

中控易动的博客 2774

解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed -- errorcode:10212 -- errorMessage:静默连接进程未初始化”的问题

解决方案如下: @Override public void onCreate() { super.onCreate(); //注意:这句要放到最前面执行,必须是 在 android:process=":channel" initCloudChannel(this); //我的项目是多进程,例如 Stri...

ITPlus的博客 2685

【电弧故障检测算法全解析,电弧串扰问题分析和解决算法】

本文系统分析了电弧故障检测算法及串扰问题解决方案。电弧检测主要采用时频域分析和机器学习方法,通过提取高频噪声、波形畸变等特征实现故障识别。针对电弧串扰问题,提出了自适应滤波、盲源分离和时频联合分析等算法。研究给出了Python和C语言的算法实现示例,包括高频能量检测、过零率计算和陷波滤波器设计。最后指出算法优化方向:实时性提升可采用滑动窗口FFT和硬件加速;抗干扰增强需结合硬件滤波;机器学习扩展可引入随机森林等分类器。该研究为电弧故障检测系统开发提供了完整的技术路线。

syttt的专栏 891

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 454

AndroidStudio 集成极光推送(带源码)

极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度、提高应用的留存率。接下在咱们就介绍一下基于 JPush 来快捷地为 Android App 增加推送功能。首先说一下极光推送的主要功能。 1.保持与服务器的长连接,以便消息能够即时推送到达客户端  2.接收通知与自定义消息,并向开发者App 传递相关

will_han 的专栏 1895

Python之美——Python2与Python3多版本共存

Python多版本共存的方法Python2、Python3共存的方法python2下载及环境变量配置第一步、打开Python官网,下载Python2第二步、python2环境变量配置测试结果 Python2、Python3共存的方法 方法如下: 1.先确保不同版本解释器的python.exe所在的路径在环境变量中 2.拷贝各自的python.exe并重命名即可 步骤(理解不了下面有图示): 1、首先你需要将不同的python版本安装,且都已经将跟版本的环境变量配置好了,python3和2的下载方式

chenchen5152的博客 3946

极光推送 安卓集成

#极光推送安卓端集成 这两天正在在学习安卓开发,刚好目前有项目需要极光推送功能,所以在经过一番摸索尝试成功后这里做个简单的教程.文章中只做安卓端的集成说明,其他移动设备集成可以参考. ##极光开发者服务中创建应用 登录极光平台link,没注册的先注册.登录后进入-&amp;amp;amp;amp;amp;amp;amp;gt;开发者服务-&amp;amp;amp;amp;amp;amp;amp;gt;极光推送-&amp;amp;amp;amp;amp;amp;amp;gt;立即体验

m0_37817986的博客 279

win10+conda+pytorch-gpu安装

pytorch 官网上只有linux和Mac的程序包,没有windows系统的,但是windows系统还是可以用pytorch的。  github: https://github.com/peterjc123/pytorch-scripts 首先要安装anaconda: 推荐清华镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ...

一摩尔自由的博客 1万+

STM32G0——USB虚拟串口

STM32G0用cubeMX配置实现USB虚拟串口

阿昌 2320

Android集成华为推送教程

前言 目前Android应用在后台杀死进程之后,就收不到通知了,想要接收消息推送,需要集成各个厂商的推送SDK,本次讲解华为集成最新教程 1.配置AppGallery Connect 1)注册成为开发者 在开发应用前需要在华为开发者联盟网站上注册成为开发者并完成实名认证,具体方法请参见帐号注册认证。注册完之后创建项目和创建应用。 2)生成签名证书指纹 签名证书指纹用于校验应用的真实性,您需要根据签名证书在本地生成签名证书指纹,并在应用上架前将签名证书指纹配置到AppGallery Connect。 官方

中控易动的博客 3401

90nm CMOS工艺下6μW超低功耗LDO设计实战:从原理图到版图全解析

本文详细解析了在90nm CMOS工艺下设计一款静态功耗仅为6μW的超低功耗LDO(低压差线性稳压器)的全过程。文章深入探讨了如何通过改进型翻转电压跟随器(FVF)架构实现无输出电容设计,在满足极低功耗和芯片面积高效(chip-area-efficient)要求的同时,确保环路稳定性与快速瞬态响应,为物联网、可穿戴设备等应用提供关键电源管理解决方案。

weixin_29196613的博客 274

极光推送在Android端的集成

这个周末,是最颓废的一个周末了。工作以来,基本每个周末都会学习点知识或者总结些东西。这个周末,身体不是很舒服,结果躺床上打了两天农药,也没有写博客。今天周一,正好我工作不忙,把上周末的博客补上。今天的博客,源于今天项目中的一个小需求:推送。这个需求不是我来做,但是我也有点兴趣,就研究了一下极光推送,并尝试着做了集成。好了,接下来总结一下极光推送在Android的集成和使用。 一....

zhaojun的博客 2万+

MTK(camera篇)Camera整体点亮

本文介绍了在MTK平台上添加新Camera Sensor的驱动开发流程。主要内容包括:1)MTK Camera采用HAL3架构,驱动层主要负责sensor电源控制和寄存器操作;2)详细说明了添加新sensor需要在多个文件中进行的修改,包括设备树配置、内核头文件、驱动列表、电源序列等;3)特别指出需要配置I2C地址表,并导入tuning文件和metadata文件以完善ISP处理流程。文章提供了完整的文件修改清单,涵盖了从内核层到HAL层的完整开发过程,为MTK平台Camera Sensor驱动开发提供了具体

weixin_49303682的博客 361

畅游Diffusion数字人(20):FLAME代码解读与实现

​ 之前的博客《畅游Diffusion数字人(17):更强大的人脸和表情表达方法 FLAME:Learning a model of facial shape and expression》讲解了FLAME的原理,这篇博客主要讲解一下FLAME的代码实现。

沉迷单车的追风少年 1131

安卓快速集成极光推送

由于网上大部分集成文章有错误,且官方文档写的不够详细。因此笔者在此处记录一下自己集成极光推送的过程。 创建应用 登录官网后进入开发者平台 点击创建应用输入应用名称 此处应用名称必填,图片上传可选 创建完成后可以看到我们创建应用的AppKey 点击下方的推送设置,设置应用包名 设置完成之后下载demo,集成极光推送需要用到demo中的代码。 集成推送 1.添加jcenter库 在pro...

Dominic2583的博客 587

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android OPPO推送服务集成

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。链接:https://pan.baidu.com/s/1BUbENbinlO0KpI5aQDA1JA?pwd=1234提取码:1234。

2401_87593773的博客 2028

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android安卓集成融云推送踩坑

此文档单单接入推送,暂时没有用IM或其他 如果您觉得可以帮助到您,麻烦帮我点个赞. -------------------------------- 写在前面,为什么要用这个,我并不想,实际接入过程中也很多坑,搜一下几乎没有任何踩坑的博客,提交的工单回复的很官方,BTW,这可是付费的推送服务哦,居然没有技术支持的群,想要技术支持,可以,付钱吧,300块钱4个电话支持/10个实时工单,楼主由于着急,就选的电话支持,因为提了好几个工单,都没有告诉我,app没有被杀掉的情况我怎么处理,因为没有被杀掉是不会走

a_man_coder的博客 1419

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android集成移动推送TPNS

一、移动推送 TPNS 简介 移动推送 TPNS 是一款专业的移动 APP 推送平台,支持百亿级的通知/消息推送,秒级触达用户,能够有效提升用户留存率、活跃度。TPNS 提供了全链路的移动推送能力,只需接入腾讯云 TPNS 的 SDK(3分钟即可完成接入,点击这里 查看教程),就可以立即将推送消息送达到用户的移动设备。 同时,移动推送 TPNS 还提供了操作便捷的网页端管理台,方便开发者进行推送消息管理,推送数据查看,推送调试。您只需要进行简单的配置,即可发送消息,并且实时观测数据。 为了帮助您灵活地定制

qq_48898298的博客 2608

个推安卓推送SDK集成步骤详解

以下是一位开发者在集成个推安卓推送SDK时候的亲身经历: 作者:吃饱了想睡。 概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来。其实早在自己大二的时候就集成过个推 SDK,溜达一圈又回来集成个推推送SDK了,发现现在的个推 SDK 与当年相比...

weixin_30753873的博客 973

Android推送集成方案总结

刚做完推送集成方案,记录下坑。 这里记录的特性和使用时针对写blog时采用的sdk的,具体使用流程和限制还请参考官方给出的sdk. 1、推送规则 小米手机用小米推送; 华为手机用华为推送; 其他手机用友盟推送。 2、总体流程 3、小米推送: ①sdk地址:https://dev.mi.com/console/doc/detail?pId=100#_1 ②常用方法:注册,设置别

tinyVampire的博客 3336
上一篇: 学习自定义view
下一篇: 二维码扫描
尘彦
博客等级 码龄11年 92粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘彦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值