Смайлики в Android-уведомлении

Я пытаюсь отобразить смайлик на панели уведомлений.

Вот моя строка:

"\ue057 " + getString(R.string.notification_sent_hey)

Я уже пробовал использовать софтбанк и все возможные форматы: "U+1F601", "\xF0\x9F\x98\x81"

Что я должен делать?

Спасибо.


person Maurício Giordano    schedule 14.07.2014    source источник
comment
Что на самом деле появляется? Ничего такого? А? или коробка? английские буквы и цифры? Что-то другое?   -  person Gabe Sechan    schedule 15.07.2014
comment
 ничего не показывает, \xF0\x9F\x98\x81 eclipse не позволяет использовать и ὠ1 показывает два странных символа   -  person Maurício Giordano    schedule 15.07.2014
comment
Хорошо, зная Java, все имеет смысл. Вот моя догадка - первая правильная. Проблема в том, что системный шрифт по умолчанию не знает этот код эмодзи, поэтому он не отображается. Вы можете попробовать изменить шрифт по умолчанию на тот, который, как вы знаете, имеет этот символ, и повторить попытку.   -  person Gabe Sechan    schedule 15.07.2014
comment
@GabeSechan, как я могу переопределить шрифт по умолчанию в NotificationCompat?   -  person Maurício Giordano    schedule 15.07.2014
comment
Я не уверен, сможешь ли ты. Мое предложение состояло в том, чтобы сделать это на устройстве, чтобы убедиться, что проблема в нем. Тогда мы можем попытаться решить этот вопрос.   -  person Gabe Sechan    schedule 15.07.2014
comment
Вы имеете в виду, например, TextView?   -  person Maurício Giordano    schedule 15.07.2014


Ответы (1)


Вы не можете сделать это так. У уведомлений есть макет, и вы вынуждены использовать этот макет.

Большая иконка, текст и маленькая иконка. Вот и все. Это довольно четко указано здесь: http://developer.android.com/design/patterns/notifications.html

Итак, вы можете следовать приведенному здесь примеру: http://developer.android.com/training/wearables/notifications/creating.html

Например:

NotificationCompat.Builder notificationBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_event)
    .setContentTitle(eventTitle)
    .setContentText(eventLocation)
    .setLargeIcon(R.drawable.ic_event2);
    .setContentIntent(viewPendingIntent);

// Get an instance of the NotificationManager service
NotificationManagerCompat notificationManager =
    NotificationManagerCompat.from(this);

// Build the notification and issues it with notification manager.
notificationManager.notify(notificationId, notificationBuilder.build());
person Mikel Pascual    schedule 15.07.2014
comment
Ничто там не помешает ему использовать смайлики в тексте своего контента или заголовка. - person Gabe Sechan; 15.07.2014
comment
Итак, как WhatsApp использует смайлики в setContentText? - person Maurício Giordano; 15.07.2014
comment
Вы имеете в виду в области уведомлений? Никогда такого не видел. Если вы имеете в виду обычный textView, вы можете использовать библиотеку (например, вот эту: github.com/rockerhieu/ смайлик). Но я думаю, что Android не поддерживает эмодзи из коробки (поправьте меня, если я ошибаюсь). - person Mikel Pascual; 15.07.2014
comment
Кстати, вы можете поместить html в TextViews. Но это будет работать только в вашем собственном приложении (не в панели уведомлений). Это хороший пример: заголовок stackoverflow.com/questions/2865452/ - person Mikel Pascual; 15.07.2014