Warum zeigt Jelly Bean nicht die zweite Zeile in einer Benachrichtigung?

8

Ich untersuche derzeit die NotificationCompat-Funktionen des Android Support Package v4 Rev 10. Die Dokumentation sagt, dass 'setContentText ()' die zweite Zeile in einer Benachrichtigung anzeigt. Dies gilt für API 8 bis API 15. Wenn ich jedoch versuche, diese Methode in API 16 zu verwenden, wird meine Benachrichtigung die zweite Zeile nicht enthalten. Ich sehe nur den Titel, aber nicht die zweite Zeile. Das Hinzufügen mehrerer Zeilen ist kein Problem (mit 'addline ()').

Hier ist mein Code für den NotificationCompat.Builder, den ich verwendet habe:

%Vor%

Und wenn ich mehrere Zeilen hinzufügen und die Benachrichtigung anzeigen möchte, verwende ich diesen Code:

%Vor%

Ist dies eine gewollte Eigenschaft von Jelly Bean, dass setContentText ignoriert wird oder fehlt mir etwas? Der Code läuft auf allen Versionen ohne Fehler, aber ich möchte die zweite Zeile mit dem gleichen Code hinzufügen, die ich auf ICS oder früher verwende.

Ich habe auch zwei Screenshots hinzugefügt. das erste von meinem ICS 4.0.3 Huawei MediaPad und das zweite von einem Galaxy Nexus mit 4.1.1. Die zweite Zeile von 1 ist der Einfachheit halber derselbe String wie der Benachrichtigungstitel. Es ist auf 2 nicht sichtbar.

Vielen Dank für Ihre Hilfe im Voraus!

    
Markus Rudel 16.08.2012, 13:19
quelle

3 Antworten

7
  

Ist dies eine gewollte Eigenschaft von Jelly Bean, dass setContentText ignoriert wird oder fehlt mir etwas?

Der Wert von setContextText() sollte im minimierten Zustand sichtbar sein (z. B. Zwei-Finger-Streichen nach oben, wenn erweitert, oder nicht am obersten Rand Notification ). Es wird durch den obigen Code ersetzt durch NotificationCompat.InboxStyle im expandierten Zustand.

    
CommonsWare 16.08.2012, 14:05
quelle
1

Wenn Sie die Benachrichtigung standardmäßig im erweiterten Zustand anzeigen möchten, setzen Sie PRIORITY_MAX des Builders einfach. Wie als: builder.setPriority (Notification.PRIORITY_MAX);

    
Mahmud 04.04.2016 04:31
quelle
0

Ich habe dieses Problem jetzt mit Hilfe von @ CommonsWare behoben und eine einfache Methode erstellt, die die aktuelle API-Ebene überprüft und entscheidet, welcher Befehl verwendet werden soll:

%Vor%

Es ist also nicht wild und weit davon entfernt, perfekt zu sein, aber es macht den Job für mich. Verbesserungen sind immer willkommen:)

    
Markus Rudel 17.08.2012 13:44
quelle