0

Я столкнулся с некоторыми проблемами, нуждающимися в вашей помощи, у меня есть приложение на переднем плане, и когда я отправляю уведомление с сервера, уведомление отправляется с уведомлением.Как отклонить значок уведомления, когда мое приложение находится на переднем плане?

но то, что мне нужно, когда мое приложение находится на переднем плане, пользователь видит уведомление, а значок уведомления не должен отображаться пользователю.

, когда мое приложение находится в фоновом режиме или когда приложение не запущено, должно появиться уведомление с уведомлением, а значок с уведомлением пользователя - значок уведомления, а затем значок уведомления будет отклонен, что работает отлично.

я попытался:

if(getIntent()!=null){ 
     Log.e("getIntent","getIntent"); 

     broadcastReciver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       if (intent.getAction().equals(NOTIFY_ACTIVITY_ACTION)) 
       { 
        if(intent.getExtras().getBoolean("reload")){ 

         int notificationId = intent.getIntExtra("notificationId", 0); 
         Log.e("notificationId","notificationId---"+notificationId); 
         NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
         manager.cancel(notificationId); 

         setFragmentView(0); 

         //finish(); 
        } 
       } 
      } 
     }; 
    } 

В onMessageReceived:

Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.putExtra("notificationId",NOTIFICATION_ID); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 
       PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.splash_logo) 
       .setContentTitle("Logizo") 
       .setContentText("New Order Arrived") 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL; 
     notificationManager.notify(NOTIFICATION_ID/* ID of notification */, notificationBuilder.build()); 
+0

Что именно вы хотите сделать? вы не хотите, чтобы уведомление отображалось, когда ваше приложение находится на переднем плане? – Prashant

+0

@Prashant да, это разрешено сейчас. –

ответ

0

Я удалить уведомлений значки, используя следующий код.

private void removeNotificationsFromStatusBar(Context context, int notificationId) { 

    try { 
     NotificationManager notificationManagerNS = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManagerNS.cancel(notificationId); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.e(NotificationsFragment.class.getSimpleName(), "Unable to remove notification from status bar"); 
    } 

} 
+0

где я должен поставить этот код? в службе активности запуска или уведомления? –

+0

Этот код можно использовать везде, но у вас должен быть контекст, и с помощью контекстного менеджера создайте диспетчер уведомлений, затем отмените уведомление с помощью функции notificationId. –

+0

Проверьте обновленный код. –