极光推送 状态栏图标显示不全(原创)

极光论坛很多人遇到这种问题:在收到推送消息的那一瞬间,推送图标被截取。在极光论坛大多数人的答案是图片适配,既在不同的drawble文件夹放推送的icon,然,极光推送默认调用应用的launcher_icon,我的手机分辨率是1920*1080,调用drawable-xhdpi文件夹里面的launcher_icon,大小为144*144,而在drawable-xhdpi中的通知的图标大小为48*48才会显示全,所以出现被截取的现象是很正常不过。

问题来了,既然极光默认调用应用的launcher_icon,难道我们要把应用的launcher_icon改为48*48吗?这样我们的应用图标在桌面上显示的肯定小,出现白边。问了极光的技术客服,不知道他们是没有懂我的意思还是上什么的,他们的答案依然是对图标做适配。呵呵,要把应用图标大小改为48*48?

当然极光也提供了对应的解决方案,只是官方文档只说了在客户端如何,却没有说要在服务端做对应的设置,导致本屌走路不少弯路。

1、 客户端设置:http://docs.jpush.cn/pages/viewpage.action?pageId=2621539

原文如下:

客户端定义通知栏样式

自定义的通知栏样式,是在客户端进行的。请参考 通知栏样式定制API 来看所支持的功能。

自定义通知栏样式设计

  • 有个 PushNotificationBuilder 概念,开发者使用 setPushNotificationBuilder 方法为某种类型的 PushNotificationBuilder 指定编号。
  • setPushNotificationBuilder 可以在 JPushInterface.init() 之后任何地方调用,可以是开发者应用的逻辑来触发调用,或者初始化时调用。
  • 只需要设置一次,JPush SDK 会记住这个设置。在下次收到推送通知时,就根据通知里指定的编号来找到 PushNotificationBuilder 来展现、执行。

API - setDefaultPushNotificationBuilder 设置默认

此 API 改变默认的编号为 0 的通知栏样式。

API - setPushNotificationBuilder 指定编号

此 API 为开发者指定的编号,设置一个自定义的 PushNotificationBuilder(通知样式构建器)。

Example - 基础的 PushNotificationBuilder

定制声音、震动、闪灯等 Notification 样式。

int builderId =1;


BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(MainActivity.this);

builder.statusBarDrawable = R.drawable.jpush_notification_icon;

builder.notificationFlags = Notification.FLAG_AUTO_CANCEL;  //设置为自动消失

builder.notificationDefaults = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS;  // 设置为铃声与震动都要

JPushInterface.setPushNotificationBuilder(builderId , builder);


客户端需设置消息的类型,即builderId ,当服务端发送对应的类型时,极光会先进行消息类型匹配,若匹配不上,则默认调用应用的图标,若匹配上,则调用客户端指定的图标builder.statusBarDrawable。

2、服务端配置,也是需要设置消息类型builderId,builderId 必须与客户端的一致 。我们使用java版sdk,其他语言的sdk也可以设置builderId 。

设置关键代码如下:


附:


通知的图标大小

drawable-xhdpi 48*48

drawable-hdpi 36*36

drawable-mdpi 24*24

时间: 2024-10-06 04:30:37

极光推送 状态栏图标显示不全(原创)的相关文章

Android客户端与PHP服务端通信(五)---移植使用极光推送

概述 上一节备研究了示例工程的框架,本节准备自己创建工程,并将极光推送移植到其上. 创建工程 首先创建一个工程,工程名和应用名为lovelife,包名com.lygk.lovelife 一直"Next",直到Finish,此时建立工程完毕,如下图 集成JPush SDK 1. 导入SDK开发包 关于集成SDK的方法,JPush 官方文档已经讲得很详细,可以去看 http://docs.jpush.io/guideline/android_guide/ ,这里我简单的描述一下步骤. 首先

android极光推送初步了解...

推送可以及时,主动的与用户发起交互 (1)继承jar包,照示例AndroidManifest.xml添加. (2)自定义MyApp继承自Application,在onCreate方法中调用JPushInterface.init(MainActivity.this); 或者在Activity的onCreate中调用. (3)另外,在activity的onResume方法要调用JPushInterface.onResume(this);否则,推送不会出现, 在onPause中调用JPushInter

极光推送JPush

1.设置 AndroidManifest.xmllibs/jpush-sdk-release 1.x.y.jarlibs/armeabi/libsys 1.x.y.so 2.基础API init 初始化SDK setDebugMode 设置调试模式 3.MyReceiver /** * 自定义接收器 *  * 如果不定义这个 Receiver,则: * 1) 默认用户会打开主界面 * 2) 接收不到自定义消息 */public class MyReceiver extends Broadcast

Android客户端与PHP服务端通信(四)---极光推送示例工程分析

概述 上一节,描述了注册极光推送并使用其例子的方法,这一节准备研究一下示例工程的框架,为移植它做准备. 分析例程源码 首先分析一下例程的源码结构,建议对照着JPUSH的官方文档(http://docs.jpush.io/)分析,我就是这样做的. 注册应用后,下载的示例工程结构如下, ExampleApplication.java:该类为应用程序定制了一个Application类,因为调用JPush的SDK时,需要调用JPush提供的init()函数API,而按照官方文档的说明"init 只需要在

极光推送sdk使用

创建应用 进入极光控制台后,点击"创建应用"按钮,进入创建应用的界面. 填上你的应用程序的名称以及应用包名这二项就可以了, 最后点击最下方的 "创建我的应用"按钮,创建应用完毕. 创建应用 填写应用程序的名称以及上传图标 创建成功 添加应用包名 jcenter 自动集成步骤 确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持(基本默认支持) buildscript { repositories { jcenter

Android客户端与PHP服务端通信(三)---极光推送使用

概述 推送消息的方式有很多,在这里我选择了极光推送.本节分为上下两部分,首先通过注册极光推送并使用其Demo程序来看一下推送的效果,然后再一步一步的修改到自己的应用上. 注册登录极光推送 开发人员基本上都了解使用第三方的库,很多都需要注册才能使用,极光推送也不例外.直接登录极光推送官网https://www.jpush.cn/,注册自己的账号,注册的流程就不介绍了,这个都会.注册完直接登录, 登录后,可以由下图看到自己还没有创建任何应用. 创建应用 点击"创建应用",界面变为下图. 按

android极光推送

版权声明:本文为博主原创文章,未经博主允许不得转载. Android开发记录18-集成推送服务的一点说明 关于推送服务,国内有很多选择,笔者也对它们进行了一个详细的对比,一般我们产品选择推送服务主要考量以下几个要素: 1.是否收费,如何收费? 2.推送内容是是什么(是否包含通知.消息.富媒体等等) 3.稳定性.及时性如何? 4.集成难度是否简单 5.支持平台有哪些(主流Android.IOS) 6.服务端支持语言(Java.C#.PHP.Python等) 下面笔者例举国内主要的一些推送服务: 来

关于极光推送需要注意的几点

先说原理:推送是建立在所有苹果设备在联网状态下都会跟苹果服务器进行一个长连接的,长连接的概念是相对于短连接的,长连接可以向客户端发送消息,保证了数据的及时性.借助苹果设备与苹果的APNS服务器之间的长连接,通过APNS服务器将消息发送给客户端.首先苹果应用要注册通知,然后将设备的UDID和应用的boundle id一起发送给苹果服务器,苹果服务器拿到这两个东西后,将加密生成一个device token并返回给应用服务器,应用服务器并且保存下来.应用服务器需要配置APNS推送证书,当需要推送时,去

JPush 极光推送 实战

极光推送的"自定义消息"很给力啊,他不是发送一条消息到状态栏,而是直接把消息内容传到APP中需要的地方,估计很多APP的验证码就是通过这种形式搞出来的. 简介 官网:https://www.jpush.cn/ 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度.提高应用的留存率. 主要功能 保持与服务器的长连接,以便消息能够即时推送到达客户端 接收通知与自定义消息,并向开发者App传递相关信息