Итак, я получил свою службу AccessibilityService со следующим кодом:
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
List<CharSequence> notificationList = event.getText();
for (int i = 0; i < notificationList.size(); i++) {
Toast.makeText(this.getApplicationContext(), notificationList.get(i), 1).show();
}
}
}
Он отлично работает для чтения текста, отображаемого при создании notifcation (1).
Единственная проблема: мне также нужно значение (3), которое отображается, когда пользователь открывает панель уведомлений. (2) для меня не важно, но было бы неплохо узнать, как его прочитать. Как вы, наверное, знаете, все значения могут быть разными.
Итак, как я могу прочитать (3)? Я сомневаюсь, что это невозможно, но мой notificationList
, кажется, имеет только одну запись (по крайней мере, показан только один тост).
Спасибо большое!
/edit: Я мог бы получить пакет уведомлений с помощью
if (!(parcel instanceof Notification)) {
return;
}
final Notification notification = (Notification) parcel;
Однако я понятия не имею, как извлечь сообщение об уведомлении либо из notification
, либо notification.contentView
/notification.contentIntent
.
Любые идеи?
/edit: Чтобы уточнить, что задано здесь: Как я могу прочитать (3)?