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规定的大小,则可能无法加载。通常,我们只能通过存储在资源文件夹中的图像加载小图标 可以从以下链接获取有关推送通知图标大小的详细信息
推送通知中的小图标不能动态添加。可以通过运行异步任务动态添加大图标。如果没有小图标,应用程序将崩溃。推送通知必须使用小图标。请在此处发布您的答案。然后是参考资料以获取更多信息