Android通知中来自外部网址的setSmallIcon

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android通知中来自外部网址的setSmallIcon相关的知识,希望对你有一定的参考价值。

我需要通过PNG从外部URL设置小型android通知图标,而不是使用mipmap。

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        notificationBuilder.setSmallIcon(R.mipmap.ic_notification);
        notificationBuilder.setColor(ContextCompat.getColor(getApplicationContext(), android.R.color.transparent));

    }

需要传递外部PNG图像而不是使用:R.mipmap.ic_notification

有谁知道这是否可能?

答案

如果您阅读特定于Notification.Builder的开发人员文档,您将看到setSmallIcon(int icon)需要在应用程序的drawable包中使用A资源ID。

下载图像,转换为位图,然后将其设置为setSmallIcon(int resId)仍然会给你一个错误。

即使您要将Bitmap转换为Drawable,例如:

Drawable d = new BitmapDrawable(getResources(), bmpFinal);

它仍然会给你一个错误,因为你的应用程序包中不存在Drawable。

唯一可行的解​​决方案是使用包中存在的Drawable资源并将其设置为setSmallIcon()方法。典型用法:

builder.setSmallIcon(R.drawable.ic_launcher);

或者,setLargeIcon (Bitmap icon)需要一个Bitmap实例。无需在当前代码中进行任何其他更改(因为您已经有了Bitmap),您可以按原样使用它,如果它符合您的要求。

如果没有,您几乎必须使用已存在于其中一个可绘制文件夹中的Drawable资源。

以上是关于Android通知中来自外部网址的setSmallIcon的主要内容,如果未能解决你的问题,请参考以下文章

通知从Android应用发送的HTTP请求

如何在android中检测来自WebView的通知?

如何在firemonkey Delphi XE 8上的Facebook等Android通知栏中使用外部大图像?

使用 php 向 android 应用程序发送推送通知,无需像 firebase 这样的外部云

贝宝支付流专业通知网址

接收来自两个 Firebase 项目的一个 Android 应用的推送通知