Android Catch Events по уведомлению (долгое нажатие) - PullRequest
9 голосов
/ 10 августа 2011

Стандартный короткий щелчок на уведомлении запускает удерживаемое в нем PendingIntent.

Можно ли перехватить другие события?

Требуется поймать длинное нажатие.

Ответы [ 2 ]

10 голосов
/ 14 января 2013

Несмотря на то, что вы можете создавать собственные представления уведомлений с помощью NotificationCompat и RemoteViews , у вас нет средств для управления базовым поведением щелчка.Единственные опции, которые у вас есть, - это изменить некоторые параметры для набора типов ViewType:

Итак, чтобы ответить на ваш вопрос: Нет, с самой последней версией Google API(api lvl 17 - 14.01.2013) вы не можете вставить onLongClickListener ни в один из элементов представления в уведомлении.

Почему это так?

RemoteView - это всего лишь упрощенная производная от View.Он даже не относится к представлению (RemoteView расширяет объект), поэтому не предоставляет все параметры, которые вы бы имели в реальном представлении ( View.setOnLongClickListener () ).

Чтотакое RemoteViews? :

RemoteView может быть выполнен другим процессом с теми же разрешениями, что и у исходного приложения (поэтому они называются Remote Views).Таким образом, виджеты и уведомления запускаются с разрешениями определяющего приложения.

При включенном ICS длительное нажатие на уведомление запускает опцию «Информация о приложении», чтобы вы могли видеть, какое приложение отправляет его (полезно определитьспам-приложения) Кроме того, начиная с JellyBean, вы получили расширенные уведомления, которые позволяют вам выполнять множество действий, в том числе более одного действия, возможно, вы сможете решить эту проблему с этим.

Shalafi

Если вы хотите получить больше информации, я рекомендую следующие статьи:

0 голосов
/ 17 января 2013

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

...