当前位置: 首页 > 知识库问答 >
问题:

应用程序未运行时Android通知白色圆圈[重复]

慕佑运
2023-03-14

我正在使用Firebase通知作为我的应用程序的推送通知。一切正常,但应用程序未运行时通知图标会显示白色圆圈。我的目标是SDK版本23,我还使用Roman Nurik的通知图标生成器生成透明白色图标。

当应用程序处于前台并运行时,通知图标显示正确。img

但当应用程序处于后台或被删除时,图标会被替换为通用的白色圆圈。img公司

这是我的通知生成器方法:

private void sendNotification(String messageTitle, String messageBody) {

    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_ONE_SHOT);

    NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_stat_notification_icon)
            .setContentTitle(messageTitle)
            .setContentText(messageBody)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
            .setAutoCancel(true)
            .setPriority(Notification.PRIORITY_DEFAULT)
            .setDefaults(Notification.DEFAULT_ALL)
            .setContentIntent(pendingIntent);

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

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

}

共有3个答案

通俊发
2023-03-14

我认为您需要在应用程序中添加一个剪影图标,并在设备运行Android Lollipop时使用它。

使用以下代码获取小图标以进行通知。

protected int getNotificationIcon() {
        boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
        return useWhiteIcon ? R.drawable.ic_silhouette : R.drawable.ic_launcher;
    }

你可以在这里看到完整的解决方案。

我做了同样的事情,效果很好。

锺离声
2023-03-14

请尝试以下代码:

 Intent intent = new Intent(this, TabActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
            PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(getNotificationIcon())
            .setContentTitle("IDS DMS Support")
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);


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

    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
秦安宁
2023-03-14

我已经找到了类似问题的答案:带有新的Firebase云消息传递系统的通知图标

不幸的是,这是SDK 9.0.0中Firebase通知的限制。当应用程序在后台时,从清单中使用启动器图标(带有必要的Android着色)用于从控制台发送的消息。

如果应用程序位于前台(或发送数据消息),您应该能够使用自己的逻辑进行自定义,如果从HTTP/XMPP API发送消息,您应该能够自定义图标。现在,通过从控制台发送的消息,您将看到这种行为。

似乎避免这个Firebase通知错误的最好方法是在构建中更改您的targetSdkVersion。渐变到19。通知图标将被着色。Firebase将在一段时间后修复此问题。

希望会有帮助

 类似资料:
  • 我今天的通知图标有一个奇怪的问题。 我做了什么坏事吗? 这是我的图标图片(刚从这里下载https://material.io/icons/#ic_photo) : http://image.noelshack.com/fichiers/2016/44/1478185219-icon-notification.png 我错过什么了吗? 作为记录,我使用的是SDK 24,目前只创建了hdpi资源文件夹

  • 下面是我的函数的简化版本: 我没有任何特定的java代码,因为我现在只需要显示通知。有没有人想过用一种简单的方法来存档这个问题?

  • 我对Firebase通知有问题,如果我在应用程序在屏幕上运行时发送通知,通知会正确显示如下: 如果我在后台运行应用程序时发送通知,则通知如下所示: 这是我的FirebaseMessagingService类 为什么会这样?

  • 我正在尝试在windows Phone7.5中实现推送通知 更新: 我知道通道活动时间长达30天,当我只使用模拟器时是否相同? 应用程序应与通道相关联,以便接收通知,即使在应用程序未运行时,如果通知通道处于活动状态,则应用程序也将接收toast

  • 当我打开我的android应用程序并测试解析推送通知时,它工作了。但是当我把我的应用程序从多任务中杀死并再次测试时,应用程序崩溃了。 错误日志 08-18 21:16:21.694 244 06-24406/?E/AndroidRuntime:致命异常:main process:com.myatminsoe.mKeyboard,PID:24406 java.lang.runtimeExceptio

  • 问题内容: 这是我有趣的问题。当应用未运行时,来自GCM的Android通知未显示标题和内容( 仅 显示应用名称,并且在单击时打开MainActivity)。 但是,当应用程序打开时,它会 成功 显示标题和内容。可能是什么问题?它运行没有问题,我没有进行任何更改。 表现: GcmService.java: 谢谢。 在应用程序运行时记录。 应用未运行时记录。 问题答案: 找到了问题。我使用的是Pla