当使用Parse进行推送通知时,我们的应用程序始终显示应用程序的启动器图标。 在最新的Android 5.1版本中,图标显示为空白(白色方块)。
我尝试在元数据中设置图标:
<meta-data android:name="com.parse.push.notification_icon" android:resource="@drawable/noti_icon"/>
基于问题here
但似乎没有任何效果。 有什么想法吗?
答案 0 :(得分:12)
您必须在Android Lollipop 5.0或更高版本下使用透明和白色图标。您可以扩展ParsePushBroadcastReceiver类并覆盖这两种方法,以使您的通知图标与这些Android API兼容。
@Override
protected int getSmallIconId(Context context, Intent intent) {
return R.drawable.your_notifiation_icon;
}
@Override
protected Bitmap getLargeIcon(Context context, Intent intent) {
return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon);
}
请记住自定义代码以支持Lollipop和以前的API。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon_lollipop);
}
else{
return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon);
}
答案 1 :(得分:2)
它与Parse或推送通知无关,而是与Android 5.0如何处理通知图标有关。 有关详细信息,请参阅此相关问 Notification bar icon turns white in Android 5 Lollipop
答案 2 :(得分:0)
试试这段代码。
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(largeIcon)
.setContentText(data)
.setContentTitle("Notification from Parse")
.setContentIntent(pendingIntent);