NotificationCompat.Builder setLargeIcon() 不工作?

新手上路,请多包涵

当我将代码 mNotificationBuilder.setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.ic_large_icon)); 添加到我的通知时,它停止工作,没有错误或警告。这只发生在 pre-Lollipop 上,在 Lollipop 上以及以后它都很好用。对于“有效”,我的意思是通知出现了。

我的示例代码:

 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);

mBuilder.setSmallIcon(R.drawable.icon);
mBuilder.setContentTitle("Content Title");
mBuilder.setContentText("Content Text");
mBuilder.setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.ic_large_icon));

startForeground(1, mBuilder.build());

我尝试以不同的方式加载位图,但它总是失败…图标是 128x128,所以它的大小应该不是问题?

我也尝试过不同的 ID,但都没有解决问题。

如果有任何建议,我将非常感激,请向正确的方向推进对我来说意味着世界。

编辑 1#

此通知由服务发出。该服务处于活动状态,日志打印告诉我“startForeground()”运行后的代码。

原文由 Matti Torvaldsson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 595
1 个回答

您必须先设置大图标,然后再设置小图标。

在我的例子中,这段代码有效:

     mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_message));
    mBuilder.setSmallIcon(R.mipmap.ic_message);
    mBuilder.setContentTitle("Inbox");
    mBuilder.setContentText("New message received");

原文由 Salar Rastari 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题