Не отображать уведомление в android - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь отобразить уведомления. Но уведомление не отображается. Ниже мой код,

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button createNotificationButton = findViewById(R.id.button_create_notification);

        // Waits for you to click the button
        createNotificationButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Starts the function below
                addNotification();
            }
        });
    }
    // Creates and displays a notification
    private void addNotification() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            NotificationChannel notificationChannel = new NotificationChannel("1" , "Notify", NotificationManager.IMPORTANCE_HIGH);

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


            NotificationCompat.Builder notification = new NotificationCompat.Builder(this, "channel_id")
                    .setContentTitle("Test Title")
                    .setContentText("Test Message")
                    .setSmallIcon(R.mipmap.ic_launcher);

            notificationManager.notify(1, notification.build());



        }

    }

    }



Я хочу отобразить уведомление в верхней панели и хочу очистить или открыть его в моем приложении ... Кто-нибудь, помогите мне с этим. Заранее спасибо.

1 Ответ

1 голос
/ 07 января 2020

Вы должны обернуть только логи создания канала c внутри проверки версии. В противном случае он не будет отображать уведомление, если версия ОС устройства меньше Android O.

И вы используете идентификатор канала как «1» при создании канала и «идентификатор_ канала» при создании уведомления.

Для создания NotificationChannel и Notification вы должны использовать одну и ту же строку channelId.

Попробуйте этот код:

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button createNotificationButton = findViewById(R.id.button_create_notification);

        // Waits for you to click the button
        createNotificationButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Starts the function below
                addNotification();
            }
        });
    }
    // Creates and displays a notification
    private void addNotification() {
        String channelId = "myNotificationChannel"; // Store channel ID as String or String resource
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            NotificationChannel notificationChannel = new NotificationChannel(channelId , "Notify", NotificationManager.IMPORTANCE_HIGH);

            NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            notificationManager.createNotificationChannel(notificationChannel);
           }

            NotificationCompat.Builder notification = new NotificationCompat.Builder(this, channelId) // Use  the same channelId String while creating notification
                    .setContentTitle("Test Title")
                    .setContentText("Test Message")
                    .setSmallIcon(R.mipmap.ic_launcher);

            notificationManager.notify(1, notification.build());


    }

}

Надеюсь, это поможет

...