BigPictureStyle通知在AndroidX中不起作用

问题描述 投票:0回答:1

代码:这是单击按钮时弹出通知的代码

 notificationbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Toast.makeText(getContext(), "noti", Toast.LENGTH_SHORT).show();
                    Intent i=new Intent(getActivity(),OrderTrack.class);
                    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(),(int) Calendar.getInstance().getTimeInMillis(),i,0);

                    Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.half_bicycle);
                    Notification builder=new NotificationCompat.Builder(getActivity(),"1")
                            .setSmallIcon(R.drawable.half_bicycle)
                            .setContentTitle("title")
                            .setContentText("Text")
                            .setLargeIcon(bitmap)
                            .setStyle(new NotificationCompat.BigPictureStyle()
                                    .bigPicture(bitmap)
                                    .bigLargeIcon(null))
                            .setPriority(NotificationCompat.PRIORITY_HIGH)
                            .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                            .setContentIntent(pendingIntent)
                            .setAutoCancel(true)
                            .setOnlyAlertOnce(true)
                            .build();


                    Notification notif = new Notification.Builder(getContext())
                            .setContentTitle("New photo from ")
                            .setContentText("subject")
                            .setSmallIcon(R.drawable.half_bicycle)
                            .setLargeIcon(bitmap)
                            .setStyle(new Notification.BigPictureStyle()
                                    .bigPicture(bitmap))
                            .build();
                }
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
                notificationManager.notify(101, notif);
            });

Here I am trying to use BigPictureSt

您的通知。我尝试了两种代码变体。但是两者都没有给出任何结果/通知。

以上所有代码都在一个片段中。这是它不起作用的原因吗?

我已将App样式设置为NoActionBar。这是它无法正常工作的原因吗?

请以适当的解决方案回答此问题!!!

添加以下代码不能解决问题

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
                    notificationManager.notify(101, notif);
android push-notification notifications android-notifications
1个回答
1
投票

该代码很好,没有任何问题,但是最重要的是,您忘记了显示通知本身,即您没有使用所创建的对象。

所以显示这样的通知...

 NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
 notificationManager.notify(101, notif);//101 is notification id 

完整代码:

notificationbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Toast.makeText(getContext(), "noti", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(getActivity(),OrderTrack.class);
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK);
                PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(),(int) Calendar.getInstance().getTimeInMillis(),i,0);

                Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.half_bicycle);
                Notification builder=new NotificationCompat.Builder(getActivity(),"1")
                        .setSmallIcon(R.drawable.half_bicycle)
                        .setContentTitle("title")
                        .setContentText("Text")
                        .setLargeIcon(bitmap)
                        .setStyle(new NotificationCompat.BigPictureStyle()
                                .bigPicture(bitmap)
                                .bigLargeIcon(null))
                        .setPriority(NotificationCompat.PRIORITY_HIGH)
                        .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                        .setContentIntent(pendingIntent)
                        .setAutoCancel(true)
                        .setOnlyAlertOnce(true)
                        .build();


                Notification notif = new Notification.Builder(getContext())
                        .setContentTitle("New photo from ")
                        .setContentText("subject")
                        .setSmallIcon(R.drawable.half_bicycle)
                        .setLargeIcon(bitmap)
                        .setStyle(new Notification.BigPictureStyle()
                                .bigPicture(bitmap))
                        .build();

     NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
     notificationManager.notify(101, notif);//101 is notification id
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.