Die Anleitung zu Android Notifications
View more Tutorials:
Eine Anmeldung (Notification) ist eine Nachricht, die Sie für den Benutzer außer der Applikation anzeigen können. Wenn Sie fordern, das System die Anmeldung gibt, erscheint sie zum ersten Mal wie ein Symbol in dem Anmeldungsbereich. Um die detailierten Nachricht zu sehen, öffnet der Benutzer die Anmeldungschublade (notification drawer). die beide Bereiche von dem Anmeldungsbereich und der Anmeldungsschublade werden von System kontrolliert und der Benutzer kann irgendwann sehen


Notification Channel
Ab Version 8.0 (Oreo) beginnt Android, Benachrichtigungen in verschiedene Kanäle zu gruppieren. Jeder Kanal hat ein bestimmtes Verhalten, und dieses Verhalten wird auf alle Benachrichtigungen dieses Kanals angewendet. Jeder Kanal verfügt über eine ID, die ihn darstellt. .
- TODO Link!
Erstellen Sie ein Android Projekt - AndroidNotification

- Name: NotificationBasicExample
- Package name: org.o7planning.notificationbasicexample

Icons
Android Studio verfügt über eine Bibliothek mit Symbolen, die für Ihre Anwendung nützlich sein können. Ich habe 2 Symbole aus dieser Bibliothek für die aktuelle Anwendung verwendet.
Hinweis: Wenn Sie die Icons in der Bibliothek von Android Studio nicht verwenden möchten, können Sie ein beliebiges Icon verwenden und es in den Ordner "drawable" des Projekts kopieren. Beispiel: icon_notify1.png, icon_notify2.png.

Mehr sehen
Die Interface der Anwendung:

activity_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" > <EditText android:id="@+id/editText_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:ems="10" android:hint="Title" android:inputType="textPersonName" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/editText_message" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:ems="10" android:hint="Message" android:inputType="textPersonName" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText_title" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="33dp" android:text="Send on Channel 1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText_message" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="23dp" android:text="Send On Channel 2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button1" /> </androidx.constraintlayout.widget.ConstraintLayout>
Notification Application
NotificationApp.java
package org.o7planning.notificationbasicexample; import android.app.Application; import android.app.NotificationChannel; import android.app.NotificationManager; import android.os.Build; public class NotificationApp extends Application { public static final String CHANNEL_1_ID = "channel1"; public static final String CHANNEL_2_ID = "channel2"; @Override public void onCreate() { super.onCreate(); this.createNotificationChannels(); } private void createNotificationChannels() { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel1 = new NotificationChannel( CHANNEL_1_ID, "Channel 1", NotificationManager.IMPORTANCE_HIGH ); channel1.setDescription("This is channel 1"); NotificationChannel channel2 = new NotificationChannel( CHANNEL_2_ID, "Channel 2", NotificationManager.IMPORTANCE_LOW ); channel1.setDescription("This is channel 2"); NotificationManager manager = this.getSystemService(NotificationManager.class); manager.createNotificationChannel(channel1); manager.createNotificationChannel(channel2); } } }
Deklarieren Sie NotificationApp in AndroidManifest.xml:
<application android:name=".NotificationApp" .... > ... </application>

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.o7planning.notificationbasicexample"> <application android:name=".NotificationApp" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
MainActivity.java
package org.o7planning.notificationbasicexample; import android.app.Notification; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; public class MainActivity extends AppCompatActivity { private NotificationManagerCompat notificationManagerCompat; private EditText editTextTitle; private EditText editTextMessage; private Button button1; private Button button2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.editTextTitle = (EditText) this.findViewById(R.id.editText_title); this.editTextMessage = (EditText) this.findViewById(R.id.editText_message); this.button1 = (Button) this.findViewById(R.id.button1); this.button2 = (Button) this.findViewById(R.id.button2); this.button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { sendOnChannel1( ); } }); this.button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { sendOnChannel2( ); } }); // this.notificationManagerCompat = NotificationManagerCompat.from(this); } private void sendOnChannel1() { String title = this.editTextTitle.getText().toString(); String message = this.editTextMessage.getText().toString(); Notification notification = new NotificationCompat.Builder(this, NotificationApp.CHANNEL_1_ID) .setSmallIcon(R.drawable.icon_notify1) .setContentTitle(title) .setContentText(message) .setPriority(NotificationCompat.PRIORITY_HIGH) .setCategory(NotificationCompat.CATEGORY_MESSAGE) .build(); int notificationId = 1; this.notificationManagerCompat.notify(notificationId, notification); } private void sendOnChannel2() { String title = this.editTextTitle.getText().toString(); String message = this.editTextMessage.getText().toString(); Notification notification = new NotificationCompat.Builder(this, NotificationApp.CHANNEL_2_ID) .setSmallIcon(R.drawable.icon_notify2) .setContentTitle(title) .setContentText(message) .setPriority(NotificationCompat.PRIORITY_LOW) .setCategory(NotificationCompat.CATEGORY_PROMO) // Promotion. .build(); int notificationId = 2; this.notificationManagerCompat.notify(notificationId, notification); } }
Die Applikation laufen
Wenn eine wichtige Benachrichtigung an das System gesendet wird, können Benutzer einen Warnton hören.

In der Zwischenzeit werden weniger wichtige Benachrichtigungen leise gesendet.
