104 Stimmen

Wie genau verwendet man Notification.Builder

Ich habe festgestellt, dass ich eine veraltete Methode für Benachrichtigungen verwende (notification.setLatestEventInfo())

Es heißt, dass ich Notification.Builder verwenden soll.

  • Wie benutze ich es?

Wenn ich versuche, eine neue Instanz zu erstellen, wird mir gesagt:

Notification.Builder kann nicht aufgelöst werden zu einem Typen

2voto

Nlinscott Punkte 786

Ich hatte Probleme beim Erstellen von Benachrichtigungen (entwickle nur für Android 4.0+). Dieser Link hat mir genau gezeigt, was ich falsch gemacht habe und sagt folgendes:

Erforderliche Benachrichtigungsinhalte

Ein Benachrichtigungsobjekt muss Folgendes enthalten:

Ein kleines Symbol, festgelegt durch setSmallIcon()
Ein Titel, festgelegt durch setContentTitle()
Detailtext, festgelegt durch setContentText()

Grundlegend habe ich eines davon vermisst. Als Grundlage für die Fehlersuche stellen Sie sicher, dass Sie zumindest alle diese Elemente haben. Hoffentlich erspart das jemand anderem Kopfschmerzen.

2voto

dondondon Punkte 781

Es funktioniert sogar in API 8 Sie können diesen Code verwenden:

Benachrichtigung n = 
   new Benachrichtigung(R.drawable.yourownpicturehere, getString(R.string.noticeMe), 
System.currentTimeMillis());

PendingIntent i=PendingIntent.getActivity(this, 0,
             new Intent(this, NotifyActivity.class),
                               0);
n.setLatestEventInfo(getApplicationContext(), getString(R.string.title), getString(R.string.message), i);
n.number=++count;
n.flags |= Benachrichtigung.FLAG_AUTO_CANCEL;
n.flags |= Benachrichtigung.DEFAULT_SOUND;
n.flags |= Benachrichtigung.DEFAULT_VIBRATE;
n.ledARGB = 0xff0000ff;
n.flags |= Benachrichtigung.FLAG_SHOW_LIGHTS;

// Jetzt den Benachrichtigungsdienst aufrufen
String notifService = Context.NOTIFICATION_SERVICE;
NotificationManager mgr = 
   (NotificationManager) getSystemService(notifService);
mgr.notify(NOTIFICATION_ID, n);

Oder ich empfehle, einem exzellenten Tutorial dazu zu folgen

2voto

Nilesh Punkte 983

Ich habe benutzt

Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("Firebase Push-Benachrichtigung")
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);

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

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

1voto

snatr Punkte 21

Falls es jemandem hilft... Ich hatte einige Schwierigkeiten beim Einrichten von Benachrichtigungen mit dem Support-Paket beim Testen gegen neuere und ältere APIs. Ich konnte sie auf dem neueren Gerät zum Laufen bringen, aber beim Testen auf dem alten Gerät kam ein Fehler. Was schließlich bei mir funktioniert hat, war das Löschen aller Imports, die mit den Benachrichtigungsfunktionen zusammenhängen. Insbesondere die NotificationCompat und der TaskStackBuilder. Es scheint, dass beim Einrichten meines Codes am Anfang die Imports aus dem neueren Build und nicht aus dem Support-Paket hinzugefügt wurden. Dann wurde ich später in Eclipse nicht erneut aufgefordert, sie zu importieren. Hoffentlich ergibt das Sinn und hilft auch jemand anderem :)

0voto

Manoj Perumarath Punkte 7830
          // Dies ist eine funktionierende Benachrichtigung
       private static final int NotificID=01;
   b= (Button) findViewById(R.id.btn);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Notification notification=new       Notification.Builder(MainActivity.this)
                    .setContentTitle("Benachrichtigungstitel")
                    .setContentText("Benachrichtigungsbeschreibung")
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .build();
            NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            notification.flags |=Notification.FLAG_AUTO_CANCEL;
            notificationManager.notify(NotificID,notification);

        }
    });
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X