wake-up-neo.com

So erstellen Sie Benachrichtigungskanäle aus Android O Api

Die Benachrichtigungskanäle, die von der Android-Version O (API 26) eingeführt wurden. Ich lese darüber unter den folgenden Links:

Fragen: 

  1. Wenn ich mehrere Benachrichtigungsnummern habe, ist es eine gute Idee, beim Start der Anwendung Benachrichtigungskanäle zu erstellen und diese auf ApplicationScope zu behalten?

    public void addNotificationChannels(Context context) {
    
        List<NotificationChannel> channels = new ArrayList<>();
        channels.add("channel_1");
        channels.add("channel_2");
        .
        .
        channels.add("channel_7");
    
        NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.createNotificationChannels(channels);
    
    }
    
  2. Was passiert, wenn ich versuche, diese Zeile new Notification.Builder(getApplicationContext(), PRIMARY_CHANNEL) auszuführen, bevor Sie dem Benachrichtigungsmanager Kanäle hinzufügen

6
sam_k
  1. Idealerweise sollten Sie einen Kanal erstellen, während Sie eine Benachrichtigung an ihn senden Es ist sicher, createNotificationChannel mit derselben ID zu verwenden, die zuvor.
  2. Ihre Anwendung wird diese Benachrichtigung nicht veröffentlichen. Das System zeigt möglicherweise eine Warnung an, dass Ihre App diese Benachrichtigung nicht veröffentlichen darf.
6
Arnav M.

Was ich mache, erweitert die Anwendungsklasse (vergessen Sie nicht, das Manifest der App mit dem Klassennamen zu aktualisieren) und erstellen Sie die Benachrichtigungskanäle einmal in der Methode onCreate. Dies gewährleistet, dass die Benachrichtigungskanäle immer erstellt werden, wenn eine Benachrichtigung erstellt wird.

IMHO ist es eine Verschwendung von CPU-Zyklen, die Benachrichtigungskanäle für jede Benachrichtigung immer wieder neu zu erstellen.

Als Randbemerkung: Ich protokolliere die App-Version immer auf diese Weise, was sehr nützlich ist, wenn jemand ein Logcat sendet.

4
M66B

Ich denke, es gibt zwei sinnvolle Wege:
1. Erstellen Sie alle Kanäle in der Anwendungsunterklasse.
2. Erstellen Sie alle Kanäle in Ihrer Hauptaktivität, die zuerst mit der App beginnt. 

0
Matt

A) Wie die Dokumentation sagt:

Das Erstellen eines vorhandenen Benachrichtigungskanals mit seinen ursprünglichen Werten führt zu keiner Operation. Sie können diesen Code also beim Starten einer App sicher aufrufen.

Damit Sie den Benachrichtigungskanal sicher erstellen können, während Sie die Benachrichtigung selbst erstellen, muss nicht überprüft werden, ob der Kanal bereits erstellt wurde.

B) Innerhalb einer Anwendung oder einer Aktivität/eines Fragments.

Hinweis: Wenn Sie Raw-FCM verwenden, ist es interessant, den Kanal zu erstellen, bevor das SDK die Benachrichtigung für Sie veröffentlicht, da gemäß dem Push-Payload-Parameter Android_channel_id, können Sie diesen Push einem bestimmten Kanal zuordnen, der bereits in Ihrer App erstellt wurde.

Fcm-Nutzdaten: https://firebase.google.com/docs/cloud-messaging/http-server-ref

0
Ricard