Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android通知图标颜色有时是白色的,有时是彩色的

Android通知图标颜色有时是白色的,有时是彩色的
EN

Stack Overflow用户
提问于 2016-06-13 18:24:31
回答 3查看 9.6K关注 0票数 1

我的Android应用程序有一个小问题。它通过FCM接收通知,并将其显示为推送通知。到目前为止一切正常,但奇怪的问题是,图标有时是白色的,有时是彩色的。

当应用程序在屏幕上打开时,我在这一刻收到了推送通知,五颜六色的推送通知显示在屏幕顶部。

当应用程序关闭时,我会收到一个白色图标的推送通知。

我附上了一个截图:Screenshot

下面是创建推送通知的代码片段:

代码语言:javascript
运行
AI代码解释
复制
        Notification.Builder notificationBuilder = new Notification.Builder(this)
            .setSmallIcon(android.R.drawable.ic_dialog_alert)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
            .setAutoCancel(true)
            .setVisibility(Notification.VISIBILITY_PUBLIC)
            .setPriority(Notification.PRIORITY_HIGH)
            .setColor(Color.parseColor("#83c3ed"))
            .setLights(Color.RED, 1000, 500)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);
    Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
    inboxStyle.setBigContentTitle("WetterApp");
    inboxStyle.addLine(notification.getTitle());
    inboxStyle.addLine(notification.getBody());
    notificationBuilder.setStyle(inboxStyle);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());

我的移动设备是Android 6.0.1,我的SDK版本是23。

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-14 18:21:50

好吧,我想问题出在别的地方。我创建通知的代码只有在应用程序在屏幕上打开时才会调用。当我收到通知,应用程序关闭时,Android系统会自动处理通知。

我必须在通知中设置颜色,通知将发送到FCM服务器:

代码语言:javascript
运行
AI代码解释
复制
 $data = [
        'notification' => [
            'title' => 'Warnung: Wohnzimmer',
            'text' => 'Innen: 20,3°C Außen: 24,5°C, Tendenz: -0,2°C',
            'color' => '#83c3ed',
            'sound' => 'default'
        ],
        'to' => '/topics/testNotification'
    ];

现在,在应用程序内和应用程序关闭时,我都会看到一个浅蓝色背景图标。

票数 4
EN

Stack Overflow用户

发布于 2016-06-13 19:21:16

按照谷歌的guide来创建你的图标,它可能也出现在状态栏中。

然后,试试这个:

代码语言:javascript
运行
AI代码解释
复制
    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
            builder.setTicker(context.getResources().getString(R.string.app_name));
            builder.setSmallIcon(R.mipmap.ic_your_status_bar_logo);
            builder.setAutoCancel(true);
            builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
            builder.setContentIntent(pendingIntent);          
       builder.setContentTitle(
context.getResources().getString(R.string.app_name));
            builder.setContentText(message);
            builder.setDefaults(Notification.DEFAULT_SOUND);
            builder.setPriority(NotificationCompat.PRIORITY_HIGH);
            builder.setColor(ContextCompat.getColor(context, R.color.color_primary));
            NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            nm.notify(NOTIFICATION_ID, builder.build());
票数 0
EN

Stack Overflow用户

发布于 2016-06-13 18:27:25

我认为一个更好的解决方案是在应用程序中添加一个剪影图标,如果设备运行的是Android棒棒糖,就可以使用它。

例如:

代码语言:javascript
运行
AI代码解释
复制
Notification notification = new Notification.Builder(context)
            .setAutoCancel(true)
            .setContentTitle("My notification")
            .setContentText("Look, white in Lollipop, else color!")
            .setSmallIcon(getNotificationIcon())
            .build();

    return notification;

并且,在getNotificationIcon方法中:

代码语言:javascript
运行
AI代码解释
复制
private int getNotificationIcon() {
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
    return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37796695

复制
相关文章
java数组如何赋值_java数组如何赋值
Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
全栈程序员站长
2022/09/13
4.1K0
java数组如何赋值_java数组如何赋值
如何给结构体内声明的二维数组赋值
最近在用C++做一个象棋小游戏,为了规避全局变量的使用,想使用结构体来声明需要使用的数据。给其中用来存储棋盘信息的二维数组赋值时却遇到了问题:
英雄爱吃土豆片
2020/10/29
2.6K0
Java基础:数组的声明,循环,赋值,拷贝。
下面,语句就是声明了一个可以存储100个整数的数组。可以根据你的实际需求,更换int类型为你需要的数据类型。
呆呆
2021/10/04
1.1K0
Mysql 声明变量并赋值
注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”
一个会写诗的程序员
2018/08/17
4.1K0
MySQL变量声明、赋值和使用
上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”
Java那些事儿
2020/07/21
3.5K0
java对象组声明_如何在Java中声明对象数组?
可以创建对象类数组,该数组可以接受任何类型的对象。在此类数组上运行期间,可以使用instanceof运算符。
全栈程序员站长
2022/08/30
3.9K0
Java中如何声明数组「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137070.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
1.8K0
Java数组赋值
String [] word = {"hello", "world", "java"}; String [] dest = new String[3]; dest = words; words[0] = "nihao"; for(String t: dest){ System.out.println(t); } String [] dest2 = {"12","23","
一灰灰blog
2018/02/06
2.1K0
数组解构赋值
倘若A代表人生的成功,那么公式是:A =X+Y+Z。X是工作,Y是游戏,z是保持缄默。——(美)爱因斯坦 我们以前从一个数组中获取第一项,可能是如下写法: let list = [1,2,3] let i = list[0] 有了解构赋值,可以如下写法: let list = [1,2,3] let [i] = list 如果稍微复杂点,例如下面这样从对象中取出来数组: let ruben = {hobby:['anime']} let favorite = ruben.hobby[0] 就可以写成
阿超
2022/08/17
1.5K0
Java 数组声明
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137260.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
8370
VBA数组(二)声明数组
大家好,上节介绍了数组的维度,索引号、上界和下界的知识,本节继续介绍数组的基础知识,包括数组的分类,以及如何声明数组。关于数组的内容相对抽象,会尽量介绍详尽。
无言之月
2019/10/13
3.5K0
VBA数组(三)数组赋值
大家好,上节介绍了在使用数组之前如何声明数组,本节就来介绍静态数组如何赋值。(动态数组会单独一节讲解)
无言之月
2019/10/13
12.5K0
解构赋值的作用_数组解构赋值
数组解构是非常简单简洁的,在赋值表达式的左侧使用数组字面量,数组字面量中的每个变量名称映射为解构数组的相同索引项
全栈程序员站长
2022/11/03
3.9K0
java如何键盘录入数组_从键盘输入给数组赋值
有时候在编写Jave的时候需要键盘输入一个数组,本小白也是看了几篇博客后才知道了如何在自己的程序中进行键盘输入,废话不多说,直接上代码: 第一种方法:(不限制输入数组的长度)
全栈程序员站长
2022/08/03
3.5K0
java如何键盘录入数组_从键盘输入给数组赋值
Matlab赋值_matlab二维数组赋值
y=[106。42 108。26 109。58 109。5 110 109。93 110。49 110。
全栈程序员站长
2022/11/10
2.2K0
【说站】java数组赋值
在数组的学习方面,我们不光有创建、初始化等操作,赋值也是操作数组必学的知识点。在赋值方面有两种方式,一种是先定义再赋值,另一种是边定义边赋值。
很酷的站长
2022/11/23
1.6K0
【说站】java数组赋值
Java之数组赋值机制
基本数据类型赋值,这个值就是具体的数据,而且相互不影响。 int n1 = 2; int n2 = n1; 数组在默认情况下是引用传递,赋的值是地址。 看一个案例,并分析数组赋值的内存图(重点, 难点. )。 ArrayAssign.java int[] arr1 = {1,2,3}; int[] arr2 = arr1; //基本数据类型赋值, 赋值方式为值拷贝 //n2的变化,不会影响到n1的值 int n1 = 10; int n2 = n1; n2 = 80; System.out
兮动人
2021/06/11
1.4K0
Java之数组赋值机制
Go 专栏|变量和常量的声明与赋值
上篇文章介绍了环境搭建,并完成了学习 Go 的第一个程序 Hello World。这篇文章继续学习 Go 的基础知识,来看看变量,常量的声明与赋值。
AlwaysBeta
2021/09/02
1.1K0
Go 专栏|变量和常量的声明与赋值
数组的声明以及分类
②$arr=array(key1=>value1,key1=>value2,key1=>value3);
十月梦想
2018/08/29
7370
Python-声明数组(列表)
在 Python 中,数组被称为列表(list),定义一个列表需要使用中括号 []
用户9006224
2023/04/22
7290

相似问题

通过javascript播放mp4视频

20

使用jquery播放视频的lightbox效果?

23

在WordPress插件的Lightbox中播放YouTube视频

15

如何在html视频标签中播放mp4视频,视频是通过multer上传的

24

lightbox中的视频有问题吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档