Es ist spät! Versuchen Sie, Android Notification in Java (Anfänger) zu implementieren.

Einführung

Hier ist die grundlegende Verwendung von Android Notification. Der Inhalt ist für Anfänger einfach. Ich möchte anhand der Beispielanwendung erklären.

Die Umgebung der Beispielanwendung ist wie folgt.

Was ist eine Benachrichtigung?

Laut der offiziellen Seite gibt es die folgende Beschreibung

Benachrichtigungen sind Nachrichten, die Android außerhalb der Benutzeroberfläche der App anzeigt und die Benutzer mit Erinnerungen, Nachrichten von anderen, zeitnahen Informationen aus der App und vielem mehr versorgen. Benutzer können auf die Benachrichtigung tippen, um die App zu öffnen oder direkt über die Benachrichtigung zu interagieren.

Nun, es ist schwierig ... Kurz gesagt, es wird in der Statusleiste des Smartphones angezeigt.

Diese Beispiel-App

Dieses Mal möchte ich eine Anwendung erstellen, die "eine Taste drückt und eine Benachrichtigung anzeigt". Diesmal ist es die Anwendung bisher. Wenn Sie danach auf den Inhalt tippen, wird "App öffnen" usw. diesmal nicht implementiert. Derzeit ist Kotlin der Mainstream für Android, aber ich möchte es diesmal auch in Java implementieren.

Die Beispiel-App funktioniert diesmal wie folgt.

sampleApp.png

Implementierung

Lassen Sie es uns jetzt implementieren. Der Bildschirm hat eine Schaltfläche in der Mitte des Bildschirms. MainActivity.java und activity_main.xml lauten wie folgt.

activtiy_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {        //・ ・ ・(1)
            int importance = NotificationManager.IMPORTANCE_DEFAULT;

            NotificationChannel channel                              //・ ・ ・(2)
                = new NotificationChannel("CHANNEL_ID", "Beispiel App", importance);

            channel.setDescription("Beschreibung / Erklärung Hier können Sie eine Beschreibung der Benachrichtigung schreiben.");     
                  
            NotificationManager notificationManager = getSystemService(NotificationManager.class); 
            notificationManager.createNotificationChannel(channel);      
        }
        
        Button button = findViewById(R.id.button);
        button.setOnClickListener(v -> notifyTest());                //・ ・ ・(3) 
    }

    public void notifyTest() {                     
        NotificationCompat.Builder builder 
            = new NotificationCompat.Builder(this, "CHANNEL_ID")     //・ ・ ・(4)
                .setSmallIcon(android.R.drawable.ic_menu_info_details)   
                .setContentTitle("Titel")                               
                .setContentText("Nachricht Nachricht")                      
                .setPriority(NotificationCompat.PRIORITY_DEFAULT);      

        NotificationManagerCompat notificationManager 
                = NotificationManagerCompat.from(this);

        notificationManager.notify(R.string.app_name, builder.build());  
                                                                     //・ ・ ・(5)
    }
}

(1) Um Benachrichtigungen unter Android 8.0 oder höher zu übermitteln, müssen Sie den Benachrichtigungskanal der App im System registrieren. Führen Sie diesen Code aus, sobald die App gestartet wird.

Das Erstellen eines vorhandenen Benachrichtigungskanals führt keine Vorgänge aus, daher ist es sicher, ihn wiederholt aufzurufen.

Wenn Sie es also mit "onCreate" aufrufen, gibt es kein Problem.

(2) Implementierung des Benachrichtigungskanals. Der Benachrichtigungskanal sieht folgendermaßen aus: Dies ist ein Bildschirm, der über die Smartphone-Einstellungen-> Apps / Benachrichtigungen angezeigt werden kann.

スクリーンショット 2020-09-05 23.30.30.png

(3) Implementieren Sie die Verarbeitung, wenn die Taste gedrückt wird.

(4) Erstellen Sie eine Benachrichtigung. Sie können das Symbol, den Titel, die Nachricht usw. festlegen.

スクリーンショット 2020-09-05 23.36.35.png

(5) Zeigen Sie die Benachrichtigung an. Anzeigen von Benachrichtigungen mit notificationManager.notify. Übergeben Sie eine eindeutige ID und das Ergebnis von "NotificationCompat.Builder.build ()" als Argument.

Funktionsprüfung

Wenn Sie die App starten und die angezeigte Taste drücken, sollte eine Benachrichtigung angezeigt werden. Wenn die Bewegung mit der in der obigen Beispiel-App gezeigten übereinstimmt, sind Sie erfolgreich!

Zusammenfassung

Hat die Probe funktioniert? Vielleicht funktioniert es mit Kopieren und Einfügen. Bei der Zustellung von Benachrichtigungen unter Android 8.0 und höher ist eine zusätzliche Implementierung erforderlich, und ich denke, der Rest ist relativ einfach.

Benachrichtigungen haben noch viele Funktionen. Sie können auch einen Fortschrittsbalken oder eine Implementierung hinzufügen, wenn Sie auf eine Benachrichtigung tippen. Ich möchte hier in Zukunft über die Implementierung hier schreiben.

wir sehen uns!

Recommended Posts

Es ist spät! Versuchen Sie, Android Notification in Java (Anfänger) zu implementieren.
Es ist spät! Versuchen Sie, Android Work Manager in Java zu implementieren (Anfänger)
Versuchen Sie, Android Hilt in Java zu implementieren
Versuchen Sie, Yuma in Kinx zu implementieren
Versuchen Sie, JavaScript in Java aufzurufen
Lassen Sie uns Spresense mit Java entwickeln (1)
Löse den AtCoder-Anfängerwettbewerb 151 mit Java
Löse den AtCoder Beginner Contest 150 mit Java
Versuchen Sie, die asynchrone Verarbeitung in Azure zu implementieren
Löse den AtCoder-Anfängerwettbewerb 153 mit Java
Versuchen Sie, Selenuim 3.141.59 mit Eclipse (Java) auszuführen.
Versuchen Sie einen If-Ausdruck in Java
Löse den AtCoder-Anfängerwettbewerb 175 mit Java
Löse den AtCoder-Anfängerwettbewerb 160 mit Java
Versuchen Sie, AWS X-Ray in Java auszuführen
Versuchen Sie, Yuma in Java zu implementieren
Löse den AtCoder-Anfängerwettbewerb 152 mit Java
Löse den AtCoder-Anfängerwettbewerb 156 mit Java
Versuchen Sie, Project Euler in Java zu lösen
Versuchen Sie, n-ary Addition in Java zu implementieren
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Versuchen Sie es mit der JSON-Format-API in Java
Versuchen Sie, den CORBA-Dienst unter Java 11+ aufzurufen
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
Führen Sie TensorFlow in Java aus. Es ist jedoch einfach. .. .. ..
Von Java nach C und von C nach Java in Android Studio
Java Anfänger 4
Java Anfänger 3
Java Anfänger
Versuchen Sie, Firebase Cloud-Funktionen unter Android (Java) zu verwenden.
[AWS IoT] Implementieren der Autorisierung von Direktaufrufen in Java [Java]
Versuchen Sie, etwa 30 Zeilen in Java zu kratzen (CSV-Ausgabe)
[Android / Java] Betreiben Sie eine lokale Datenbank in Room
Senden Sie Push-Benachrichtigungen über Notification Hubs in Java
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Zweite Abkochung: Versuchen Sie einen If-Ausdruck in Java
Versuchen Sie es mit Sourcetrail (Win-Version) mit Java-Code
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Versuchen Sie es mit Sourcetrail (MacOS-Version) mit Java-Code
Versuchen Sie die Kommunikation mit gRPC auf einem Android + Java-Server
Schwierigkeiten bei der Implementierung von Alarm Manager in Android Studio
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Repräsentiert "nächster Tag" und "vorheriger Tag" in Java / Android
[Anfänger] Installieren Sie das Java-Entwicklungstool in der Cloud9-Entwicklungsumgebung.