Android Wear: персонализированные уведомления

На портативных устройствах настраиваемые уведомления можно отображать с помощью RemoteViews< /сильный>. RemoteViews позволяет разработчику полностью настроить уведомление.

Как сделать то же самое для Android Wear? Какой класс следует использовать для переопределения пользовательского интерфейса уведомлений по умолчанию моим собственным настроенным?


person Swayam    schedule 19.11.2014    source источник
comment
Я обновил свой ответ, насколько это возможно, посмотрите здесь: stackoverflow.com/questions/28603086/   -  person Michał Tajchert    schedule 18.04.2015


Ответы (3)


  1. если вы хотите настроить только текст, вы можете использовать SpannableString. Это позволяет вам изменить цвет, фон, выровнять текст вашего заголовка / содержимого.

  2. если вы хотите создать совершенно другое уведомление, вам нужно реализовать что-то подобное в своем проекте одежды.

    Intent notificationIntent = new Intent(context, WearNotificationActivity.class);
    PendingIntent pendingNotificationIntent =
            PendingIntent.getActivity(context, 0, notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
    
        Notification notification =
                new Notification.Builder(context)
                        .setSmallIcon(R.drawable.ic_launcher)
    
                       // .setContentTitle("CustomNotification")
                        .extend(new Notification.WearableExtender()
                                .setDisplayIntent(pendingNotificationIntent)
                                .setCustomSizePreset(Notification.WearableExtender.SIZE_LARGE)
                                .setStartScrollBottom(false)
                                .setHintHideIcon(true))
    
                        .build();
    
        NotificationManager notificationManager =
                (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
    
        notificationManager.notify(0, notification);
    

где WearNotificationActivity - контейнер активности вашего пользовательского представления.

ПРИМЕЧАНИЕ: вы ДОЛЖНЫ использовать .setSmallIcon(..), даже если вам это не нужно. Похоже на баг гугла, но без этой строки уведомление не будет отображаться.

и установить

 android:allowEmbedded="true"
 android:taskAffinity=""

для контейнера вашей деятельности

person Vika L.    schedule 24.11.2014
comment
Абсолютно необходимо добавить метод setSmallIcon(). Черт, я потратил два часа только на то, чтобы разработчики Android не указали эту деталь. - person Juan José Melero Gómez; 15.07.2015

Чтобы создать расширенное уведомление для Android Wear, вы должны использовать NotificationCompat.Builder из support-v4.

Эта версия дает вам лучший контроль над макетом уведомлений на Wear с помощью таких методов, как .setActionButton() или .setStyle().

Вы можете еще больше настроить свое уведомление с помощью NotificationCompat.WearableExtender.

Подробнее читайте на странице Создание уведомления.

person pdegand59    schedule 19.11.2014
comment
Спасибо за ответ, но я уже закончил с этой частью. NotificationCompat и WearableExtender позволяют нам только определять действия и устанавливать значки действий. То, что я хочу сделать, это создать полностью настроенное уведомление. - person Swayam; 19.11.2014

В настоящее время нет возможности сделать это. РЕДАКТИРОВАТЬ: возможно: Пользовательский интерфейс для уведомлений Android Wear

Лучший вариант из них:

  • Создайте уведомление на телефоне и используйте NotificationCompat.WearableExtendernotification как для телефона, так и для Wear.
  • Создайте уведомление с setLocalOnly(), чтобы уведомление было ограничено телефоном, а на Wear создайте отдельное - с другим видом, действиями и т. д.
  • Сделайте, как указано выше, но вместо уведомления на Wear создайте собственное приложение с CardFrames (что позволит вам одновременно иметь «стиль уведомления» и настраиваемый макет, а при получении сигнала с телефона запускайте свое приложение вместо уведомления.

Таким образом, только последний вариант позволяет вам иметь собственный макет, но у него много недостатков (поскольку это собственное приложение) - например, он отделен от списка уведомлений.

Надеюсь, что это может измениться в будущем.

person Michał Tajchert    schedule 19.11.2014