Android 接收通知时动态设置mallicon()?

Android 接收通知时动态设置mallicon()?,android,notifications,Android,Notifications,这是用于一般通知应用程序的。我成功地捕获并设置了通知的大图标,因为它接受位图类型作为参数,但是设置小图标要复杂得多。它只接受int资源ID。因为我不知道哪个应用程序可能会向我的侦听器发送通知,所以我必须动态生成它。我可以通过监听传入的通知并提取它来获得这个小图标,但我似乎找不到通过它的资源ID来设置它的方法 我认为这是不可能的,但我想确认一下。如果是这样,是否有解决办法,或者我必须手动将我想要支持的特定应用程序的小图标加载到我的Drawable文件夹中,然后从那里使用资源Id?这听起来像是一个麻

这是用于一般通知应用程序的。我成功地捕获并设置了通知的大图标,因为它接受
位图
类型作为参数,但是设置小图标要复杂得多。它只接受
int
资源ID。因为我不知道哪个应用程序可能会向我的侦听器发送通知,所以我必须动态生成它。我可以通过监听传入的通知并提取它来获得这个小图标,但我似乎找不到通过它的资源ID来设置它的方法

我认为这是不可能的,但我想确认一下。如果是这样,是否有解决办法,或者我必须手动将我想要支持的特定应用程序的小图标加载到我的Drawable文件夹中,然后从那里使用资源Id?这听起来像是一个麻烦,因为我已经得到了正确的图标,但无法加载它!下面是我的代码:

public class NotificationService extends NotificationListenerService {

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
                          Bundle extras = sbn.getNotification().extras;
                          int id1 = extras.getInt(Notification.EXTRA_SMALL_ICON);; 

                    //Building Notifications
                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context.getApplicationContext(id1))
                            .setSmallIcon(R.mipmap.ic_launcher) //This gives an error
                            .setContentTitle("My Title")
                            .setContentText("My Text");

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

                    notificationManager.notify(notiId, mBuilder.build());

}
}

如果小图标超过Android规定的大小,则可能无法加载。通常,我们只能通过存储在资源文件夹中的图像加载小图标

可以从以下链接获取有关推送通知图标大小的详细信息
推送通知中的小图标不能动态添加。可以通过运行异步任务动态添加大图标。如果没有小图标,应用程序将崩溃。推送通知必须使用小图标。

请在此处发布您的答案。然后是参考资料以获取更多信息