2010-05-25 2 views
43

На iPhone вы можете добавить пронумерованный значок к значку приложения. На BlackBerry я успешно нарисовал изображение на иконке приложения в программе. Я хочу сделать это и для Android. Я не хочу использовать панель уведомлений, так как это не то, что нужно немедленно уведомить. Вместо этого я просто хочу, чтобы пользователь мог видеть, сколько новых сообщений находится в приложении, просто просмотрев значок приложения.Есть ли способ добавить значок к значку приложения в Android?

+1

Вы нашли решение этого? –

+0

Это лучшее решение, которое я когда-либо нашел. http://stackoverflow.com/a/24804467/957954 –

+0

My Samsung note 5 показывает их для Skype, Whatsapp и Facebook. Так что это должно быть возможно. – Zapnologica

ответ

30

К сожалению, Android не позволяет изменять значок приложения, поскольку он запечатан в APK после компиляции программы. Невозможно программно изменить его на «drawable».

Вы можете достичь своей цели, используя виджет вместо значка. Виджеты очень настраиваемые и могут делать то, что вы хотите.

Там краткий разговор о разнице между уведомлением значка iPhone и с помощью виджетов здесь:

http://www.cnet.com/8301-19736_1-10278814-251.html

Как вы заметите, нет практически никакой разницы между использованием виджета или значка, так как они могут быть одного размера и выглядеть одинаково.

+1

+1, виджет - это то, что требуется для потребностей groomsy. –

+1

Вы уверены, что нет способа захватить главный экран Launcher и бит-blt значок на изображение? Мне нужна такая же функциональность, и приложение - это другое решение другой проблемы. Любой может выбросить мой виджет, но если они не удаляют приложение, значок остается верным навсегда. Любые изменения уровня ОС в Gingerbread, так как этот вопрос был задан в Eclair/Froyo days ?? – mobibob

+0

Как насчет таких приложений, как обмен сообщениями? Как насчет 'BadgeProvider'? – minmaxavg

16

Это также можно сделать для Sony Xperia Home. Я писал об этом here, но важные части ниже. Устройства Sony используют класс с именем BadgeReciever.

  1. Объявите com.sonyericsson.home.permission.BROADCAST_BADGE разрешение в вашем файле манифеста:

  2. транслируют Intent к BadgeReceiver:

    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); 
    
  3. Готово. Как только это Intent будет транслироваться, пусковая установка должна показывать значок на вашем значке приложения.

  4. Чтобы убрать значок, просто отправить новую передачу, на этот раз с SHOW_MESSAGE значение ЛОЖЬ:

    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false); 
    

Я исключил подробности о том, как я нашел это, чтобы держать ответ короткий , но все это доступно в блоге. Может быть, интересно читать для кого-то.

Я также разместил отдельный SO вопрос об этом here и добавлю полный ответ там, как только мне позволено (нужно 10 репутации, чтобы ответить на мой собственный вопрос в течение 8 часов).

0

Вот как это сделать для:

Я думаю, что есть также способ сделать это на пусковой установке LG, но не нашел, как еще ,

9

ShortcutBadger библиотека позволяет и работает с LG, Sony, Samsung, HTC и другими обычными пусковыми установками.

У него даже есть возможность отображать количество значков на рабочем столе Android с чистым Android.

Обновление значка графа в иконку приложения так же легко, как вызов:

int badgeCount = 1; 
ShortcutBadger.setBadge(getApplicationContext(), badgeCount); 

Она включает в себя демо-приложение, которое позволяет проверить его поведение.

ИЛИ

вы также можете попробовать деятельностной псевдоним, чтобы сделать это, но в этом вам необходимо создать различные значки со значениями значка, он будет отлично работать в к регистру вам необходимо переключаться между 2 различными App иконки (необходимо создать различные псевдонимы активности для отображения различного значка, т.е. больше значков = больше псевдонимов активности).

+0

Я загрузил zip-файл ShortcutBadger и импортировал его в свой AndroidStudio. Когда я укажу 10 в предоставленном редакторе EditText, он отобразит сообщение Toast. Но на иконке ничего не отображается. Что мы должны сделать –

+0

Извините, не получите свою точку зрения. Не могли бы вы прояснить, чего именно вы хотите., ........ как я уточнил, как использовать shorcutBadger для установки значков. –

+0

ShortcutBadger успешно работает после импорта в Android Studio. Мой вопрос: «Когда я ввожу некоторые номера в EditText и нажимаю кнопку SET BADGE, тогда я не могу увидеть значок в приложении в Launcher». Почему я не вижу этот значок. –

Смежные вопросы