Câu hỏi đặt ra là làm thế nào để có được trường TEXT (không phải tiêu đề) của tất cả các thông báo đến khi chúng được xếp chồng lên nhau (như trong Whatsapp).Cách nhận văn bản của Thông báo xếp chồng lên nhau trong Android
public class NLService extends NotificationListenerService {
public void onNotificationPosted(StatusBarNotification sbn) {
Log.v(Constants.TAG_notifs,
"------------------------- in onNotificationPosted(), Notification Text = "
+ sbn.getNotification().tickerText);
Bundle extras = sbn.getNotification().extras;
if (extras.containsKey("android.text")) {
if (extras.getCharSequence("android.text") != null) {
String text = extras.getCharSequence("android.text").toString();
Log.v(Constants.TAG_notifs,
"------------------------- in onNotificationPosted(), Bundle.text != NULL, so here it is = "
+ text);
}
}
if (extras.containsKey("android.title")) {
Log.v(Constants.TAG_notifs,
"------------------------- in onNotificationPosted(), Bundle android.title = "
+ extras.getString("android.title"));
}
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
//super.onNotificationRemoved(sbn);
}
} Lần đầu tiên khi một thông báo Whatsapp đến từ một người dùng duy nhất dòng này (String text = extras.getCharSequence ("android.text") toString();.) thành công có thể đọc văn bản, nhưng sau đó khi có nhiều thư đến và thông báo được xếp chồng lên nhau (như trong hình minh họa ở trên), biến văn bản luôn là NULL.
Điều này phải có thể vì this app đang thực hiện, đã thử nghiệm. Đó là nhận được văn bản của mỗi và mọi ứng dụng.
Đã thêm khuyến khích: Nếu bạn biết câu trả lời hoặc những điều cần thử, có một câu hỏi khác có vẻ giống câu hỏi here.
Khi thông báo thứ 2 (giả sử từ A trong ví dụ của bạn) có trong 'sbn.getNotification().getCharSequence (Notification.EXTRA_TEXT) .toString(); ' là NULL, không có gì ở đó cả. Bạn không nhìn thấy nó NULL quá? Tôi đang cố gắng trong Kitkat, API = 19 – user1406716
Tôi không chắc chắn nếu điều này là đúng sự thật, bạn có thể xây dựng trên làm thế nào để có được thông báo trước đó ?: "* Bằng cách này khi tin nhắn người gửi mới đến, previoud thông báo cũng đến và chúng tôi nhận được gọi lại trong NotificationListener * " – user1406716
Đối với KitKat, nó sẽ hoạt động tốt với AccessibilityService .. Hãy thử sử dụng dịch vụ gọi lại này .. Trong trường hợp của tôi, AccessibilityService đã hoạt động tốt cho đến (<= KitKat) để kiểm tra việc sử dụng nó – Kushal