2016-04-15 16 views
3

Ich versuche dieses in diesem Forum zu finden und ich fand ein Paar, aber niemand arbeitete für mich. Ich muss es nur im Benachrichtigungsfeld ausblenden, das neben dem großen Symbol angezeigt wird, aber wenn ich es verstecke, verschwindet es auch aus der Benachrichtigungsleiste.Zeige kleines Icon in der Benachrichtigungsleiste, aber in der Benachrichtigungsleiste ausblenden

enter image description here

Gibt es eine Möglichkeit nur das große Symbol zu zeigen, wie in den ersten und vierten Meldungen geschehen?
Dies ist der Code, den ich verwende:

mNotificationManager = (NotificationManager) 
      this.getSystemService(Context.NOTIFICATION_SERVICE); 
    Intent intent; 

    Notification.Builder mBuilder = 
      new Notification.Builder(this) 
        .setSmallIcon(R.mipmap.small_icon).setTicker(getApplicationContext().getResources().getString(R.string.app_name)) 
        .setLargeIcon(largeIcon) 
        .setAutoCancel(true) 
        .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}) 
        .setLights(Color.GREEN, 1000, 1000) 
        .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
        .setContentTitle(extras.getString("title")) 
        .setStyle(new Notification.BigTextStyle().bigText(extras.getString("message"))) 
        .setContentText(extras.getString("message")); 
     edit.putString(Config.FRAGMENT, extras.getString("fragment")); 
     edit.commit(); 
     intent = new Intent(this, NavigationActivity.class); 
     PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
       intent, 0); 
     mBuilder.setContentIntent(contentIntent); 
     mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 

Antwort

0

für mich arbeiten.

versuchen es

Notification.Builder builder=new Notification.Builder(this); 
      builder.setContentIntent(intent) 
        .setSmallIcon(R.drawable.ic_notification).setTicker(context.getResources().getString(R.string.app_name)) 
        .setContentTitle(context.getResources().getString(R.string.app_name)) 
        .setContentText(message); 
      Notification notification = builder.build(); 
+0

Aber was ist das große Symbol? Ich muss verschiedene Symbole in der Kopfzeile und in der Benachrichtigungsliste haben. –

+1

Wenn Sie ein großes Icon setzen möchten, können Sie das kleine Symbol nicht ausblenden. In den obigen Screenshots zeigen Sie einzelnes Symbol Wenn Sie largeIcon nicht festlegen. Sie können die Farbe ändern. mit 'builder.setColor ()' –

5

Sie es nach dem Bau der Benachrichtigung unsichtbar machen kann:

int smallIconId = context.getResources().getIdentifier("right_icon", "id", android.R.class.getPackage().getName()); 
      if (smallIconId != 0) { 
       notification.contentView.setViewVisibility(smallIconId, View.INVISIBLE); 
       notification.bigContentView.setViewVisibility(smallIconId, View.INVISIBLE); 
      } 
+1

Hallo, ist das noch sicher? contentView und bigContentView ist veraltet. –

+1

anscheinend sollte es mit [setCustomBigContentView] (https://developer.android.com/reference/android/app/Notification.Builder.html#setCustomBigContentView (android.widget.RemoteViews)) ersetzt werden, werde ich die Antwort aktualisieren für api 24+ – awsleiman