Вопрос в том, как получить поле TEXT (не заголовок) всех входящих уведомлений, когда они укладываются (например, в Whatsapp).Как получить текст Stacked Notifications в 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);
}
} В первый раз, когда уведомление Whatsapp поступает от одного пользователя этой линии (Строка текста = extras.getCharSequence ("android.text") ToString();.) успешно умеет читать текст, но после этого, когда приходит больше сообщений, и уведомления укладываются (например, на рисунке, показанном выше), переменная текст всегда имеет значение NULL.
Это должно быть возможно, потому что this app делает это, проверял его. Он получает текст каждого приложения.
Added Incentive: Если вы знаете ответ или что-то попробовать, возникает другой вопрос, который выглядит аналогичным вопросом here.
Когда второе уведомление (скажем, от А в вашем примере) появляется в 'sbn.getNotification().getCharSequence (Notification.EXTRA_TEXT) .ToString();» NULL, там ничего нет. Вы тоже не видите NULL? Я пытаюсь в Kitkat, API = 19 – user1406716
Я не уверен, что это правда, не могли бы вы рассказать о том, как получить предыдущие уведомления? ?: * * Таким образом, когда приходит новое сообщение отправителя, также появляются уведомления о предыдущих действиях, и мы получаем callback in NotificationListener * « – user1406716
Для KitKat он должен хорошо работать с AccessibilityService. Попробуйте использовать этот обратный вызов службы. В моем случае AccessibilityService работал нормально до (<= KitKat), поэтому PLS проверяет его использование – Kushal