Tôi gặp sự cố mà tôi không thể tìm thấy câu trả lời. Tôi đã thử các hướng dẫn AndroidDeveloper, tôi đã tìm kiếm ở đây trên stackoverflow và trên google, nhưng một trong hai kỹ năng tìm kiếm của tôi là awefull hoặc không có câu trả lời tôi nghĩ rằng câu trả lời vấn đề của tôi.Thông báo ngăn xếp trong Kitkat (API 19) bằng cách sử dụng setGroup() không hoạt động
Tôi muốn ngăn thông báo thư vào một thông báo cho tất cả thư mới khi có nhiều thư. Tôi có thể xuất hiện thông báo cho từng thư nhưng tôi không thể tạo thông báo ngăn xếp/tóm tắt.
Điều tốt nhất tôi nhận được là: http://developer.android.com/images/android-5.0/notifications/Summarise_Dont.png
Những gì tôi muốn đây là: http://developer.android.com/images/android-5.0/notifications/Summarise_Do.png
Tôi đang sử dụng API 19 và nó không phải là back-tương thích. Viết mã của tôi trong AndroidStudio và thử nghiệm trong Genymotion.
Tôi đã cố gắng sử dụng NotificationCompatManager với kết quả của việc có nhiều thông báo: NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
Tôi cũng đã cố gắng sử dụng NotificationManager với kết quả tương tự, đó là nhiều thông báo:
NotificationManager notificationManager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
thông báo ngoại hình của tôi như thế này:
Notification notification = new NotificationCompat.Builder(this) .setContentTitle("New message from... ") .setContentText("Message:...") .setSmallIcon(R.drawable.icon) .setContentIntent(pIntent) .setSound(RingtoneManager.getDefaultUri(TYPE_NOTIFICATION)) .setGroup(mNoti) .setGroupSummary(true) .setAutoCancel(true) .build();
Và tôi cháy thông báo như thế này:
notificationManager.notify(counter, notification);
đâu increments truy cập cho mỗi thông báo vì vậy mỗi thông báo có ID riêng của nó.
Tôi cũng đã cố gắng biểu mẫu này cho việc xây dựng và Fiering khi áp thông báo mà không succsess:
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle("message from...")
.setContentText("message...")
.setContentIntent(pIntent)
.setAutoCancel(true)
.setGroup(mNoti)
.setGroupSummary(true)
.setSound(RingtoneManager.getDefaultUri(TYPE_NOTIFICATION));
notificationManager.notify(counter, notificationBuilder.build());
setGroup rõ ràng là không chú ý đối với tôi. Tôi không hiểu tại sao nó không hoạt động hoặc làm thế nào tôi phải làm cho nó hoạt động.
nhìn nhóm của tôi như thế này:
final static String mNoti = "mNoti";
Điều duy nhất mà đến từ xa gần với những gì tôi muốn là sử dụng cùng một ID cho tất cả các thông báo để thông báo mới sẽ ghi đè lên cái cũ, và sử dụng setNumber (int) trong khi xây dựng thông báo. Tuy nhiên điều này không thực sự cho tôi kết quả tôi muốn bởi vì tôi không nghĩ rằng tôi có thể nhận được số lượng thông báo không được xử lý bởi người dùng. Hay tôi có thể?
Có ai có thể giúp tôi đạt được mục tiêu mong muốn của mình không?
Tôi làm theo lời khuyên của bạn và sử dụng setGroupSummary và setGroup và nó đã làm việc, mặc dù chỉ có trên Android 5.0 trở lên. 4.4 và 4.2 hiển thị từng thông báo riêng biệt. Điều này vượt ra ngoài câu hỏi ban đầu ở đây, vì vậy tôi đã tạo một câu hỏi mới: http://stackoverflow.com/q/31483772/1204377 –
@AntonCherkashyn Bạn có chắc chắn rằng bạn đã bao gồm dòng này: 'manager.cancelAll(); // Điều này có thực sự cần thiết không? Đây là "thủ thuật" để đóng các thông báo cũ chỉ thu tóm tắt mở. – Pphoenix
Tôi đã thử và sau đó tôi chỉ nhìn thấy thông báo tóm tắt trên điện thoại, đúng, nhưng mục tiêu cuối cùng của tôi là có thông báo xếp chồng lên Android Wear và để làm điều đó, tôi phải kích hoạt N thông báo riêng lẻ + 1 thông báo tóm tắt cho mỗi nhà phát triển Android : https://developer.android.com/training/wearables/notifications/stacks.html. Gọi manager.cancelAll(); cũng loại bỏ các thông báo về mặc Android. Vì vậy, điều đó sẽ không hoạt động, vì những thông báo riêng lẻ đó có các hành động/trang tùy chỉnh/v.v. –