2017-07-19 3 views
0

Ich versuche, Heads-up-Benachrichtigung zu arbeiten. Benachrichtigungen werden erstellt, aber sie werden nicht oben in der App angezeigt. Hier ist der Code verantwortlich für den Aufbau einer Benachrichtigung:Android heads-up Benachrichtigung nicht angezeigt

Notification notification = new NotificationCompat.Builder(context) 
           .setSmallIcon(android.R.drawable.arrow_up_float) 
           .setContentTitle("Check running time - click!") 
           .setContentText(String.valueOf(elapsedTime)) 
           .setContentIntent(pendingIntent) 
           .setDefaults(Notification.DEFAULT_ALL) 
           .setPriority(Notification.PRIORITY_HIGH) 
           .setVibrate(new long[0]) 
           .build(); 

Das Gerät, das ich versuche, um die App zu laufen ist API 21. Ich habe viele Threads gesehen, aber keine Lösung funktioniert bei mir gegeben.

Antwort

0

versuchen, dies zu tun:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context) 
           .setSmallIcon(android.R.drawable.arrow_up_float) 
           .setContentTitle("Check running time - click!") 
           .setContentText(String.valueOf(elapsedTime)) 
           .setContentIntent(pendingIntent) 
           .setDefaults(Notification.DEFAULT_ALL) 
           .setPriority(Notification.PRIORITY_HIGH) 
           .setVibrate(new long[0]); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0, notificationBuilder.build()); 
+0

Es funktioniert nicht, ich wäre überrascht, wenn es so wäre. –

+0

können Sie den gesamten Klassencode hinzufügen? –

-1

Verwenden Sie einfach wie

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

    Intent myintent = new Intent(this, MainActivity.class); 
    myintent.putExtra("message", msg); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      myintent, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setSmallIcon(R.drawable.ic_launcher) 
        .setContentTitle("ttile") 
        .setStyle(new NotificationCompat.BigTextStyle() 
          .bigText(msg)) 
        .setContentText(msg); 

    mBuilder.setContentIntent(contentIntent); 
    mNotificationManager.notify(1, mBuilder.build()); 
+0

Wie würde es helfen, indem Sie setStyle() aufrufen? Funktioniert immer noch nicht. –

+0

importieren Sie unbedingt android.support.v7.app.NotificationCompat; –

+0

Oder Sie können 22.2.0, 22.2.1 –

0


Code fast in Ordnung ist. Ich verwende DEFAULT_VIBRATE statt DEFAULT_ALL:

builder.setPriority(Notification.PRIORITY_HIGH); 
if (Build.VERSION.SDK_INT >= 21) { 
    mBuilder.setDefaults(Notification.DEFAULT_VIBRATE); 
} 

Aber auch

einstellen
builder.fullScreenIntent(sameAsContentPendingtIntent); 

aber^dieses ist nicht deterministisch. Ich meine, dieses System wählt eine HeadsUp- oder Launch Intent aus. In den meisten Fällen zeigt es HeadUp, aber ich zähle nicht auf Android-Versionen, Hersteller, Trägerraketen und so weiter.
Nicht zuletzt müssen Sie auch den rechten Benachrichtigungskanal definieren. Ich denke, du hast das schon gemacht, weil du keine Benachrichtigung sehen würdest, wenn du es nicht machst :-) Oh schönes Android :-) Trotzdem möchte ich sagen, dass auch NotificationChannel in hoher Priorität sein muss:

channel = new NotificationChannel("uniqueId", "name", NotificationManager.IMPORTANCE_HIGH); 
channel.enableVibration(true); 

Und auch, ich rate Ihnen, überprüfen Sie aktuelle Meinungen auf developer.android.com
Google wird ab jetzt strenger sein. Nicht nur für Benachrichtigungen, sondern auch für 'targetApi', aber das ist eine andere Geschichte, verzeiht mir :-)
Have a nice code heute

Verwandte Themen