android棉花糖和棒棒糖中的推送通知问题

Posted

技术标签:

【中文标题】android棉花糖和棒棒糖中的推送通知问题【英文标题】:Push Notification issue in android marshmallow and lollipop 【发布时间】:2016-04-13 04:44:28 【问题描述】:

我尝试了推送通知,它在 android JellyBean 中运行良好,但相同的代码无法正常运行棉花糖和棒棒糖。

设备收到其他应用通知,如 whatsapp、gmail.. 也不能说设置有问题。

用谷歌搜索了一些图标更改了新版本,但也没有收到通知,谢谢大家 :)

我的通知代码:

 NotificationIntent = new Intent(this, Activity.class);
        NotificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

        NotificationPendingIntent = PendingIntent.getActivity(this, 0, NotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        NotificationBuilder = new Notification.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("GREEK NEWS")
                .setContentText(content)
                .setDefaults(Notification.DEFAULT_ALL)
                .setAutoCancel(true)
                .setContentIntent(NotificationPendingIntent);

        NotificationManager = (android.app.NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) 
            NotificationManager.notify(86, NotificationBuilder.build());
         else 
            NotificationManager.notify(86, NotificationBuilder.getNotification());
        

【问题讨论】:

哪个设备?该设备上是否安装了任何应用程序,例如停止后台作业的自动启动管理器。 在 Moto G3 中进行测试 Whatsapp 等流行应用的通知功能是否即将到来? 然后有一些应用程序或您设备中电池性能部分的检查设置将您的应用程序列入黑名单。 还检查并修改了电池设置 【参考方案1】:

尝试更改通知图标

.setSmallIcon(getNotificationIcon())

并创建方法

private int getNotificationIcon() 
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
    return useWhiteIcon ? R.drawable.notification_icon : R.mipmap.ic_launcher;

希望。对你有帮助!!!

【讨论】:

【参考方案2】:

尝试使用以下方法。我检查了棒棒糖或 > 然后棒棒糖的版本,我使用了基于矢量的图标,还使用了 NotificationCompat.Builder 来生成通知。在所有版本中都经过测试。希望这会对你有所帮助。

 public void simpleNotification(Context context,String message)
    
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent intent = new Intent(context, SplashActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        //intent.putExtra("isFromBadge", false);

        PendingIntent pIntent = PendingIntent.getActivity(context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.app_icon);


        boolean whiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                .setContentText(message)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setAutoCancel(true)
                .setLights(Color.RED, 100, 1900)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                .setDefaults(Notification.DEFAULT_SOUND);


        mBuilder.setContentTitle(context.getResources().getString(R.string.app_name));
        mBuilder.setSmallIcon(whiteIcon ? R.drawable.ic_notification : R.drawable.app_icon);

        if(whiteIcon)
           mBuilder.setColor(ContextCompat.getColor(context,R.color.colorPrimary));

            //mBuilder.setColor(context.getResources().getColor(R.color.colorPrimary));



        mBuilder.setContentIntent(pIntent);

        Notification notification = mBuilder.build();
        // hide the notification after its selected
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        notificationManager.notify(1, notification);
    

【讨论】:

试过我没有收到推送通知@Harshal Bhatt

以上是关于android棉花糖和棒棒糖中的推送通知问题的主要内容,如果未能解决你的问题,请参考以下文章

onActivityResult 返回 Intent data.getData();仅在棉花糖和棒棒糖中始终为空

Android解析推送通知在某些设备上不起作用

Lollipop上方的推送通知图标为白色[重复]

iOS 推送通知中的多行标题

推送内容更改通知

Xamarin.Forms - 适用于 iOS 和 Android 的推送通知