Po dodaniu do mojego powiadomienia kodu mNotificationBuilder.setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.ic_large_icon));
przestaje działać bez błędów i ostrzeżeń. Dzieje się tak tylko na pre-Lollipop, na Lollipop i poza nim działa świetnie. A z "uczynkami" mam na myśli to, że powiadomienie się pojawiło.Zestaw NotificationCompat.BuilderLargeIcon() nie działa?
mój przykładowy kod:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setSmallIcon(R.drawable.icon);
mBuilder.setContentTitle("Content Title");
mBuilder.setContentText("Content Text");
mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_large_icon));
startForeground(1, mBuilder.build());
Próbowałem załadować bitmapę w różny sposób, ale to wciąż braku ... Ikona jest 128x128 więc rozmiar to nie powinno być problemem?
Próbowałem też różnych identyfikatorów, ale żaden nie rozwiązał problemu.
Byłbym bardzo wdzięczny za radę, proszę każde pchnięcie we właściwym kierunku oznaczałoby dla mnie cały świat.
EDIT 1 #
Zgłoszenie to zostało wydane z Serwisu. Usługa jest żywa, a Log prints informuje mnie, że kod po uruchomieniu "startForeground()".
„Ikona jest 128x128 więc rozmiar to nie powinno być problemem?” - w jakim katalogu (lub katalogach) masz tę ikonę? – CommonsWare
Res/drawable, również próbował użyć Android Asset Studio (przez Roman), aby wiele rozdzielczości umieścić w różnych podkatalogach. Ale to też nie pomogło. Czy istnieje jakakolwiek możliwość, że jest ona ważna tam, gdzie jest umieszczona? Próbuję użyć zwykłej klasy NotificationManager zamiast "startForeground()", ale byłoby dziwnie, gdyby to była przyczyna problemu. –
'res/drawable /' prawie nigdy nie jest właściwą odpowiedzią. Jest to synonim 'res/drawable-mdpi /', więc obraz zostanie przeskalowany na urządzeniach o wyższej gęstości. Tak więc na urządzeniach o naprawdę wysokiej gęstości obraz, który zaczął się przy 128 x 128, może wznieść się do 512x512, w którym to momencie przekroczysz limit wielkości transakcji IPM o 1 MB. Możesz spojrzeć na 'Bitmapę', którą otrzymujesz z 'decodeResource()'. – CommonsWare