Tôi thấy rằng cách tiếp cận mới ChannelNotification
không thay thế logic cũ, nó thêm một lớp điều khiển cho thông báo. Vì vậy, bây giờ chúng tôi có 2 kịch bản, xem ảnh chụp màn hình:
Bạn có thể xác định nếu thông báo được kích hoạt:
NotificationManagerCompat.from(context).areNotificationsEnabled();
Bạn có thể xác định nếu thông báo của bạn được hiển thị cho người sử dụng:
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel notificationChannel =
notificationManager.getNotificationChannel(channelId);
int importance = notificationChannel.getImportance();
Nếu tầm quan trọng là NotificationManager.IMPORTANCE_NONE
người dùng sẽ không nhìn thấy thông báo, nhưng thông báo ở đó, vì vậy bạn có thể sử dụng thông báo bằng dịch vụ Foreground và bạn nên loại bỏ thông báo đó. Nếu mức độ quan trọng là NotificationManager.IMPORTANCE_MIN
hoặc người dùng cao hơn sẽ thấy thông báo.
Nguồn
2017-09-18 13:31:10
Có thể [tầm quan trọng] của kênh thông báo (https://developer.android.com/reference/android/app/NotificationChannel.html#getImportance()) trở thành [IMPORTANCE_NONE] (https://developer.android.com/reference /android/app/NotificationManager.html#IMPORTANCE_NONE)? Tôi không chắc chắn, chỉ cần giả định. – azizbekian
@azizbekian cảm ơn bạn vì giả định, nó biến rằng bạn đúng. –