Czy istnieje sposób na dodanie odznaki do ikony aplikacji w systemie Android?
Na iPhonie możesz dodać numerowaną plakietkę do ikony aplikacji. Na BlackBerry, udało mi się namalować obraz na ikonę aplikacji, podczas gdy w programie. Chcę to zrobić również dla Androida. Nie chcę korzystać z paska powiadomień, ponieważ nie jest to coś, co musi być natychmiast powiadamiane. Zamiast tego chcę, aby użytkownik mógł zobaczyć, ile nowych wiadomości znajduje się w aplikacji, patrząc na ikonę aplikacji.
4 answers
Niestety, Android nie pozwala na zmianę ikony aplikacji, ponieważ jest ona zapieczętowana w APK po skompilowaniu programu. Nie ma sposobu, aby programowo zmienić go na "drawable".
Możesz osiągnąć swój cel używając widżetu zamiast ikony. Widżety są wysoce konfigurowalne i mogą robić to, co chcesz.
Tutaj jest krótka dyskusja na temat różnicy między powiadomieniem ikon iPhone ' a a używaniem widżetów:
Http://www.cnet.com/8301-19736_1-10278814-251.html
Jak zauważysz, nie ma praktycznie żadnej różnicy między używaniem widżetu lub ikony, ponieważ mogą one być tego samego rozmiaru i wyglądać tak samo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-25 14:34:23
Można to zrobić również w domu Sony Xperia. Pisałem o tym tutaj, ale ważne części są poniżej. Urządzenia Sony używają klasy o nazwie BadgeReciever
.
Zadeklaruj pozwolenie
com.sonyericsson.home.permission.BROADCAST_BADGE
w swoim pliku manifestu:-
Nadaj
Intent
doBadgeReceiver
:Intent intent = new Intent(); intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity"); intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true); intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99"); intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp"); sendBroadcast(intent);
Załatwione. Po emisji
Intent
launcher powinien pokazać odznakę na ikonie aplikacji.-
Aby ponownie usunąć odznakę, po prostu wyślij nową nadawanie, tym razem z
SHOW_MESSAGE
ustawionym na false:intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);
Wyłączyłem szczegóły dotyczące tego, jak znalazłem to, aby odpowiedź była krótka, ale wszystko jest dostępne na blogu. To może być dla kogoś interesująca lektura.
Zamieściłem również osobne pytanie o to tutaj i dodam tam pełną odpowiedź, gdy tylko będę mógł (potrzebuję 10 reputacji, aby odpowiedzieć na własne pytanie w ciągu 8 godzin).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:35
Biblioteka ShortcutBadger umożliwia i współpracuje z LG, Sony, Samsung, HTC i innymi niestandardowymi wyrzutniami.
Ma nawet sposób wyświetlania liczby znaczków na pulpicie czystych urządzeń z Androidem.
Zaktualizowanie liczby znaczków w ikonie aplikacji jest tak proste, jak wywołanie:
int badgeCount = 1;
ShortcutBadger.setBadge(getApplicationContext(), badgeCount);
Zawiera aplikację demonstracyjną, która pozwala przetestować jej zachowanie.
Lub
Możesz również spróbować activity-alias, ale w tym celu musisz utworzyć różne ikony z Znaczki wartości, to będzie działać świetnie w przypadku-trzeba przełączać się między 2 różne ikony aplikacji (trzeba utworzyć inną aktywność-alias do wyświetlania różnych ikon TJ więcej ikon = więcej aktywności-alias).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-16 07:40:07
Oto Jak to zrobić:
Myślę, że jest też sposób, aby to zrobić na launcherze LG, ale nie dowiedziałem się jeszcze jak.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-28 12:22:54