Mam nadzieję, że nie narusza to żadnej reguły, ponieważ próbowałem postępować zgodnie z instrukcjami "Jak pytać".NotificationListenerService nie odczytuje tekstu ułożonych powiadomień
Próbuję odczytać przychodzące powiadomienia za pomocą usługi NotificationListenerService i działa ona dla mnie, ale tylko częściowo.
Pierwsze powiadomienie o jego typie, powiedzmy - WhatsApp, że mogę uzyskać ticker, tekst i tytuł, ale potem , jeśli powiadomienia się kumulują, nie mogę już czytać tekstu wiadomości.
Jak uzyskać tekst skumulowanych powiadomień?
Oto kod I obecnie realizować:
public class NotificationService extends NotificationListenerService {
private Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
String pack = sbn.getPackageName();
String ticker = sbn.getNotification().tickerText.toString();
Bundle extras = sbn.getNotification().extras;
String title = "";
String text = "";
if (extras.containsKey("android.title")) {
title = extras.getString("android.title");
}
if (extras.containsKey("android.text")) {
if (extras.getCharSequence("android.text") != null) {
text = extras.getCharSequence("android.text").toString();
}
}
if (pack != null) {
Log.i("Package", pack);
}
if (ticker != null) {
Log.i("ticker", ticker);
}
if (title != null) {
Log.i("Title", title);
}
if (text != null) {
Log.i("Text", text);
}
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
}
}
Wierzę, że to jest właściwa/default Android zachowanie. Szukam źródeł, które mogą mi pomóc, ale widziałem podobne problemy: przeczytałeś tylko powiadomienie o pierwszym stosie. – shkschneider
Aplikacja airdroid na przykład używa tej samej metody notificationListenerService i poprawnie odczytuje powiadomienia, więc jestem pewien, że istnieje sposób, że po prostu nie jestem świadomy – Bended
Czy znalazłeś odpowiedź na to? – user1406716