setOngoing (true) не работает в Oreo + Уведомления - PullRequest
0 голосов
/ 30 сентября 2018

Я создаю пользовательское уведомление с channel_id и запускаю его как передний план.У меня играет фоновая музыка .. Моя проблема в том, что когда пользователь удаляет уведомление, оно исчезает.Я также установил постоянно (true) .я хочу, чтобы уведомление оставалось, когда играет музыка.

ПРИМЕЧАНИЕ: Это происходит только в Oreo +.в младших версиях работает нормально.

public void CustomNotification() {
    remoteViews = new RemoteViews(getPackageName(), R.layout.player_noti_layout);
    notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("default",
                getString(R.string.player_channel),
                NotificationManager.IMPORTANCE_LOW);
        channel.enableVibration(true);
        channel.enableLights(true);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
        channel.setDescription("Notification, Play/pause & Next/Prev");
        notificationmanager.createNotificationChannel(channel);
    }
    builder = new NotificationCompat.Builder(this, "default");
    Notification foregroundNote;

    // Set icon
    foregroundNote = builder.setSmallIcon(R.drawable.ic_radio)
           .setLargeIcon(R.drawable.cool_1)
            // Set ticker message
            .setTicker(getResources().getString(R.string.app_name))
            // Dismiss notification
            .setAutoCancel(false)
            .setOngoing(true)
          .setContent(remoteViews)
            .setContentTitle("title").
                    setContentText("text")
            .build();
    foregroundNote.flags |= Notification.FLAG_ONGOING_EVENT;
    foregroundNote.flags |= Notification.FLAG_NO_CLEAR;


    foregroundNote.contentView = remoteViews;


    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        startForeground(2, foregroundNote);
    } else
        notificationmanager.notify(2, foregroundNote);


}
...