Въпросът е как да получите полето ТЕКСТ (не заглавие) на всички входящи известия, когато бъдат подредени (като в Whatsapp).
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 пристигне от един потребител, този ред (String text = extras.getCharSequence("android.text").toString();) може успешно да прочете текст, но след това, когато постъпят повече съобщения и известията се натрупват (както на снимката, показана по-горе), променливата текст винаги е NULL.
Това трябва да е възможно, защото това приложение прави го, тества го. Той получава текста на всяко приложение.
Допълнителен стимул: Ако знаете отговора или неща, които да опитате, има друг въпрос, който изглежда подобен на въпрос тук.