Ist setContentIntent (PendingIntent) in NotificationCompat.Builder erforderlich?

8

Aufruf:

%Vor%

in onCreate() meiner Hauptaktivität ergibt:

%Vor%

Beachten Sie contentIntent erforderlich .

>

Die Dokumentation könnte jedoch nicht klarer sein :

  

Erforderliche Benachrichtigungsinhalte

     

Ein Benachrichtigungsobjekt muss Folgendes enthalten:

     
  • Ein kleines Icon, gesetzt von setSmallIcon ()

  •   
  • Ein Titel, der von setContentTitle () festgelegt wurde

  •   
  • Detailtext, festgelegt durch setContentText ()

  •   

Optionale Benachrichtigungsinhalte und -einstellungen

     

Alle anderen Benachrichtigungseinstellungen und Inhalte sind optional. Weitere Informationen finden Sie in der Referenzdokumentation für NotificationCompat.Builder.

Diese Meinung spiegelt sich in verschiedenen SO antwortet und führt zu SO Fragen (und ein anderes .

Problemumgehung:

%Vor%

Aber ist das wirklich nötig? Ist all diese Situation ein anderer Android Docs Bug ? Ist es API abhängig?

NB mein Ziel-SDK ist 17 und läuft dies auf einem 2.3.7 Telefon

    
Mr_and_Mrs_D 17.11.2013, 15:08
quelle

1 Antwort

19

Wenn Sie einen Caching-Service wie waybackmachine verwenden, suchen Sie nach vorherige Versionen des Benachrichtigungsleitfadens, sehen Sie, dass Ihnen in der Anleitung mitgeteilt wird, dass contentIntent erforderlich ist.

Dies spiegelt sich auch in der Android-Quelle wider. NotificationManagerService behandelt die Überprüfung von Benachrichtigungen, bevor sie angezeigt werden.

In Gingerbread als Teil von der Methode enqueueNotificationInternal() hat es folgende Kontrolle:

%Vor%

Bei späteren Android-Versionen, z. B. Ice Cream Sandwich , diese Überprüfung ist nicht mehr möglich:

%Vor%

Somit ist ein contentIntent auf Gingerbread und darunter erforderlich .

    
A--C 17.11.2013, 16:06
quelle