типы уведомлений в приложениях

Основы успешной реализации push-уведомлений для мобильных приложений

Наши разработчики в Techmas часто сталкиваются с задачами создания уведомлений (push notifications). Несмотря на простоту и популярность технологии, в её реализации есть ряд особенностей, о которых и пойдёт речь в этой статье.

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Push-сообщения могут стать великолепным маркетинговым инструментом, если они грамотно реализованы. Любое мобильное приложение или игра должны выполнять не только свои прямые функции, но и (даже в большей степени) так взаимодействовать с пользователями, чтобы последние с удовольствием возвращались в приложение и покупали дополнения к нему. К слову, по статистике сервиса Kahuna хорошо разработанные push-уведомления увеличили показатель возвратов пользователей в приложения более чем в 2 раза. Анализируемые периоды: 30, 60, 90 дней. Но прежде, чем говорить о грамотной реализации, посмотрим, как работают push-уведомления.

Общие сведения о технологии Push Notification

Push-уведомления – это такой способ распространения контента (системных сообщений), когда уведомления отправляются от сервера клиенту по инициативе сервера на основе определённых параметров. В отличие от обратной схемы «клиент-сервер» (Pull), push-технология выгодна тем, что даёт пользователю таргетированную информацию, которая может быть ему полезна, но об этой пользе он может пока не знать.
Изначально технология Push Notification имела отношение не к мобильным приложениям, а к сети PointCast, занимавшейся рассылкой новостей фондового рынка. Эту же систему давно используют суды США для рассылки подписчикам данных о процессах. Позже Microsoft и Netscape включили технологию в свои браузеры, но из-за низкой скорости подключения пользователей в то время она была вытеснена pull-технологией RSS. И лишь потом термин получил широкую известность после внедрения технологии компанией Google в ОС Android (Google Cloud Messaging, GCM) и компанией Apple в iOS 3 (Apple Push Notification Service, APNS). На примере последнего рассмотрим элементарную схему работы Push-уведомлений.

Схема работы Push Notification на примере сервиса APNS

Зачем нужны промежуточные сервисы

Существуют нюансы в рассылках push-уведомлений для разных мобильных платформ (Android, iOS, Windows Phone). Допустим, если приложение было удалено пользователем, то все сервисы сообщают о том, на какие устройства не следует больше отсылать уведомления. Осуществляется данный процесс посредством сообщения серверу токенов этих устройств. Однако если у GCM отсылка идентификаторов происходит сразу, то у APNS имеется специальный feedback server (сервер обратной связи), с которого список таких токенов забирается раз в сутки. Для рутинной работы с этими различиями и нужны промежуточные сервисы.

В случае разработки мобильного приложения с помощью какого-либо кроссплатформенного решения (к примеру, Appcelerator) такой промежуточный сервис, как правило, интегрирован в него. Допустим, в том же Appcelerator это Appcelerator Cloud Services (ACS), представляющий собой дополнительный сервис каналов уведомлений. Такой канал (channel) объединяет несколько устройств, являясь своеобразным идентификатором, состоящим из цифр и букв. ACS даёт возможность отправлять пуши и по токену устройств. Итак, данный промежуточный сервис берёт на себя функцию обновления информации об устройствах и взаимодействует с APNS и GCM.

Форма уведомления. Сразу выдавайте интересную информацию, лучше в заголовке. Одинаковые пуши вида «Новые распродажи в нашем магазине» не работают: дайте конкретику. Неплохо также использовать Deep Linking (указывать в сообщение внешние ссылки на конкретную страницу сайта).

Гибкая настройка. Чем более детальна настройка того, о чём именно в рамках вашего продукта хочет получать сообщение пользователь, тем лучшее. Персонализированные рассылки всегда имеют больший отклик. Позвольте пользователю настроить уведомления так, как ему интересно и удобно, с максимумом подробностей.

Интерес пользователя. Сообщайте пользователю о том, что он хочет услышать, а не о том, что вы хотите ему рассказать. Для этого нужно собирать информацию о том, что интересно пользователю. Простой пуш о новом ресторане от городского гида не сравнится с пушем о новом ресторане в том районе, где живёт пользователь с информацией об утренних скидках – ведь он часто завтракает в кафе. Аналитика и ещё раз аналитика.

Статистика. Её нужно собирать, чтобы понять: когда эффективней рассылать сообщения; какие типы уведомлений эффективней; насколько те, кто получают ваши пуши, чаще заходят в приложение, чем те, кто не подписан; сколько пользователей открыли приложение по тому или иному пушу; другие виды анализа поведения пользователей.

Тестирование. Используйте разные формы подписки, тексты уведомлений, время рассылки и общую push-стратегию. Следите за отзывами в сети – это даст вам богатую информацию о том, как улучшить рассылку.

Звук уведомлений. Настройте свой, неповторимый. Чтобы пользователь знал, что новое сообщение пришло именно от вашего приложения. Не делайте его раздражающим – сделайте комфортным.

Сервисы автоматизации Push-рассылки

Push Woosh. Выдаёт удобные и понятные отчёты, совместим со многими платформами, отлично сегментирует аудиторию по разным группам признаков.

Urban Airship. Осуществляет таргетинг и анализ аудитории, позволяет выбирать различные стратегии удержания пользователя и создавать уведомления расширенного формата.

Appsfire`s Appbooster. Бесплатный сервис со стандартным набором функций.

Parse Push. Позволяет собирать уникальные данные для аналитики, с лёгкостью интегрируется в любое приложение.

В заключение отметим, что push-уведомления, конечно, являют собой простой и эффективный способ возврата и удержания пользователя в частности и мощный маркетинговый инструмент в целом. Но это с точки зрения пользователя. Со стороны разработчика же существуют некоторые сложности. Реализация уведомлений сильно зависит от внешних вводных: изменения в OS или в промежуточном софте приводит к необходимости доработки приложения. Так, в Appcelerator появился новый инструмент Arrow Push, который пришел на смену ACS – и это лишь один из примеров. Более того, доставка пуша не гарантирована в принципе, а это поднимает вопрос о надёжности технологии Push Notification. Однако любая технология имеет свои плюсы и минусы, и что перевешивает в данном случае – вопрос открытый.

Источник

Тестирование push-уведомлений в мобильных приложениях

Push-уведомления — это сообщения, отправляемые приложением на мобильное устройство клиента. Они обычно используются для доставки обновлений продуктов, напоминаний, персонализированных предложений, последних новостей и любой информации, которая является неотъемлемой частью функциональности приложения и требует особого внимания или быстрых действий.

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Какие цели преследуют с помощью push-уведомлений?

Принцип работы push-уведомлений

Где отображаются уведомления?

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

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Разница между push-уведомлениями в iOS и Android

Функции push-уведомлений в iOS и Android довольно сильно различаются.

iOS основана на модели push Opt-In, которая не позволяет брендам отправлять мобильные push-уведомления пользователям своих приложений до тех пор, пока эти пользователи не согласятся их получать. Android, с другой стороны, автоматически разрешает пользователям получать push-уведомления с возможностью отказаться от них вручную.

Подход Android по сравнению с iOS по умолчанию дает более широкую аудиторию пользователей с поддержкой push. Однако, когда у пользователей нет возможности легко отказаться от их получения, нерелевантные или слишком частые уведомления могут подтолкнуть клиентов отключить сообщения или удалить приложение.

Типы мобильных уведомлений

Информационные уведомления

Информационные push-уведомления используют для доставки важных и своевременных сообщений, информирования о важных обновлениях, для предупреждений, напоминаний и передачи событий.

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Геолокационные уведомления

Повторное вовлечение

Улавливающие мобильные push-уведомления, также известные как «повторное вовлечение», используют для мотивирования клиентов к достижению личных целей и поощрения использования приложений. В зависимости от активности и предпочтений клиентов в приложении, догоняющие уведомления могут служить для поздравления пользователей с достижением или для напоминания о необходимости запустить приложение.

Рекламные уведомления

Такими уведомлениями информируют клиентов об эксклюзивных предложениях, распродажах и розыгрышах, чтобы стимулировать покупки.

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Периодические уведомления

Они запускаются в определенное время и день.

типы уведомлений в приложениях. image loader. типы уведомлений в приложениях фото. типы уведомлений в приложениях-image loader. картинка типы уведомлений в приложениях. картинка image loader.

Уведомления об опросах

Уведомления с рейтингами и опросами используют для сбора отзывов пользователей и улучшения взаимодействия с ними.

Тестирование push-уведомлений

Не приходят push-уведомления

Чтобы разобраться в причине, для начала проверьте, чтобы в меню устройства была активирована соответствующая функция (разрешены уведомления для конкретного приложения). Затем убедитесь, что не включен режим «Не беспокоить».

Если всё настроено правильно, но уведомления не приходят, попробуйте перезагрузить устройство и заново авторизоваться в приложении. Бывает так, что необходимо заново отправить push-токен на серверную часть сервиса. Проверьте также, какой стиль уведомления используется (необходим «Баннер» либо «Предупреждение»).

Если не помогло всё перечисленное, попробуйте перезайти в свою учетную запись магазина приложений, либо откройте саму программу, в том случае, если на другие приложения тоже не приходят push-уведомления (стоит также проверить наличие интернета на устройстве).

Переходы по push-уведомлению

При тестировании необходимо проверить такие сценарии (с учётом того, что пользователь может быть авторизован или неавторизован):

Если push-уведомление ведет на WebView, то проверьте, что WebView открывается корректно на обеих платформах. И что в push зашит корректный URL.

Устаревший push-токен

У устройства изменился push-токен, когда восстановили приложение из резервной копии системы и не передался новый push-токен.

Очередь со стороны Apple

В Apple большая очередь на отправку push-уведомлений, они приходят с задержкой (Apple не гарантирует доставку push).

Проверка максимального и минимального количества отображаемых символов

В iOS и Android имеется лимит отображаемых символов. Он разный. Максимальное значение количества символов для платформы iOS – ограничение в 4 строки (178 символов), а для Android – не более 13 строк (663 символа). Не забудьте также проверить push-уведомление, содержащее минимальное количество символов, для обоих платформ можно задать 1 символ.

Кастомный звук для push-уведомления

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

Изображения в push-уведомлениях

Push-уведомление может содержать изображение, при отправке пуша – клиент получает ссылку на изображение и перед показом загружает его, далее происходит процесс обогащения пуша картинкой – она устанавливается. Уведомление отображается после загрузки картинки. Если push-уведомление содержит картинку, необходимо проверить, что она отображается.

Локальные push-уведомления

Локальные уведомления планируются самим приложением и служат для своевременного и актуального информирования пользователей, пока приложение не работает на переднем плане. Чтобы уведомление отобразилось, его необходимо запланировать самому пользователю. В таких случаях проверяем кейсы, связанные с таймингом отправки сообщения.

Проблемы на серверной стороне

В другие приложения приходят push-уведомления, но не приходит на наше, хотя push-токен отправлен на сервер. Стоит проверить корректность отправки push на другие аккаунты сервиса и другие устройства. При отсутствии push-уведомлений сообщите команде серверной разработки.

Резюме

Мобильные push-уведомления помогают быть ближе к своим клиентам. В уведомлениях мы сообщаем пользователю информацию об основных обновлениях продукта, рекламных акциях. А также уведомления помогают повторно привлечь неактивных пользователей. Учитывайте при тестировании все возможные сценарии, это важно для продукта.

Над статьей работали: @KostyaKulakov, @yakoeka и @wincomm. А если остались вопросы — скорее пишите в Telegram-каналы @qa_chillout или @youlatech.

Источник

9 вариантов использования in-app уведомлений в мобильных приложениях

Уведомления в приложениях — отличный канал коммуникации, привлечения внимания клиента и повышения продаж. Главное — убедиться, что сообщения действительно полезны пользователю.

В приложениях существует 2 вида уведомлений:

1) Push-уведомления — стандарт мобильных уведомлений, которые используются чаще всего. Уведомления, которые пользователь видит, не открывая приложение.

2) In-app уведомления — уведомления, которые приходят пользователю, только когда он внутри приложения. Созданы для отправки более целевых и контекстно-зависимых сообщений.

Преимущества in-app уведомлений по сравнению с push-уведомлениями заключаются в высокой конверсии. При этом количество пользователей может резко сократиться из-за неуместных или слишком рекламных in-app уведомлений, которые будут восприниматься как спам. Как сделать их эффективными и ненавязчивыми?

1. Согласие на получение уведомлений

При первом запуске приложения in-app уведомления можно использовать, чтобы деликатно спросить пользователя, хочет ли он получать их в будущем. Стандартный шаблон таких сообщений часто используется в приложениях, но они ничего не говорят о пользе и преимуществах таких уведомлений и не объясняют, что от них можно отписаться в любой момент. Такие сообщения чаще игнорируют. Чтобы получить больше согласных пользователей, постарайтесь сделать предложение об уведомлениях максимально привлекательным и объяснить, почему они могут быть полезны.

Рассказываем, как мошенники убивают рекламные бюджеты и как защитить ваше приложение.

типы уведомлений в приложениях. In app 1. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 1. картинка типы уведомлений в приложениях. картинка In app 1.

2. Персональные рекомендации

Персонализация имеет решающее значение в формировании лояльности клиентов. Приложение может собирать информацию о том, как пользователь ведет себя, что ему нравится. Собирая и анализируя полученную информацию о предпочтениях пользователей, его списках избранного, других атрибутов и действий, вы можете предлагать наиболее подходящий контент, персонализированную информацию и рекомендации на основе реальных интересов.

типы уведомлений в приложениях. In app 2. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 2. картинка типы уведомлений в приложениях. картинка In app 2.

Например, приложение Beats Music создает плейлист, основываясь на ранее прослушанных вами композициях, и вместо того, чтобы просто заспамить всех пользователей уведомлениями о новинках и рекомендациях, они используют уведомления «Только для тебя» на главном экране. Приложение Duolingo использует похожий прием индивидуального подхода к каждому пользователю. После первого теста на определение уровня знания языка они предлагают специальный урок на основе полученных от вас ответов

3. Элементы игрофикации

In-app уведомления — идеальная форма для поощрения пользователей. Это можно делать с помощью уведомлений наподобие игровых достижений: значков, стикеров и других так называемых level-up наград.

типы уведомлений в приложениях. In app 3. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 3. картинка типы уведомлений в приложениях. картинка In app 3.

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

4. Простой способ рассказать друзьям

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

типы уведомлений в приложениях. In app 4. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 4. картинка типы уведомлений в приложениях. картинка In app 4.

Пару примеров из приложения для медитации Headspace и карманного трекера Runkeeper. Чтобы пользователи начали рассказывать о вас, нужно предоставить им удобную возможность. Достаточно создать in-app, совмещенный с каким-либо событием в приложении: например, человек завершил тренировку или медитацию и может поделиться этим с друзьями

5. Короткие советы

Все любят прописывать руководства по использованию приложения, но никто не любит их читать. In-app уведомления — отличная возможность для показа небольших советов и коротких контекстных инструкций. Так пользователи моментально переймут правильный опыт использования приложения, не прерываясь и не переходя на отдельный экран, чтобы прочитать руководство.

типы уведомлений в приложениях. In app 5. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 5. картинка типы уведомлений в приложениях. картинка In app 5.

Например, Pinterest не навязывает инструкции и не предлагает перейти на отдельный экран, чтобы прочитать их FAQ. А в приложении Lingualeo, используя in-app, вам помогают разобраться с правилами похождения тренировок

6. Добавление друзей пользователя

Если суть вашего приложения в том, чтобы пользователи взаимодействовали между собой, вы можете использовать in-app, чтобы подтолкнуть их к нужному действию. Покажите им, как легко они могут взаимодействовать с другими и какая от этого польза.

типы уведомлений в приложениях. In app 6. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 6. картинка типы уведомлений в приложениях. картинка In app 6.

Приложение Any.do Cal использует подобный метод: предлагает добавить информацию о ваших друзьях из «Фейсбука» в календарь. Таким образом оно старается стать ближе к пользователям, создавая ваше личное пространство в пока еще чуждом приложении

7. Рассказ об очередном обновлении

In-app уведомления также удобно использовать, чтобы быстро рассказать пользователю про обновлениях в приложении.

типы уведомлений в приложениях. In app 7. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 7. картинка типы уведомлений в приложениях. картинка In app 7.

Показательный пример из приложения Wunderlist для составления списка дел. Чтобы информацию было легче воспринимать, в in-app добавили картинки для каждого нововведения. Второй пример от приложения для формирования личных привычек Rewire: скудный вариант, но лучше, чем обновлять приложения молча

8. Акции для вовлечения пользователей

In-app уведомления также идеальны для рассказа об акциях и спецпредложениях.

типы уведомлений в приложениях. In app 8. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 8. картинка типы уведомлений в приложениях. картинка In app 8.

Пример из Lamoda: предложение оформить первый заказ со скидкой, используя бесплатный промо-код. Второй пример из аналогичного приложения Wish: если вы положили товары в корзину, а потом забыли про нее, при следующем заходе в приложение in-app напомнит об этом, предложив оформить заказ со скидкой

9. Большой анонс

Запускаете нечто потрясающе новое и хотите, чтобы пользователи обратили на это внимание? Используйте in-app уведомления. Если в у вас планируется или уже реализовано серьезное обновление, то in-app с его возможностями — это идеальный инструмент для создания красочного анонса.

типы уведомлений в приложениях. In app 9. типы уведомлений в приложениях фото. типы уведомлений в приложениях-In app 9. картинка типы уведомлений в приложениях. картинка In app 9.

Свежий пример из Shazam. Пропустить такое уведомление не получится, а высокую конверсию обеспечит реальная ценность для пользователей и правильно расставленные акценты (сравните кнопки «выполнено» и «пропустить»)

Источник

Уведомления

Вступление

Кроме Toast-уведомлений, существует также другой тип уведомлений, который выводится за пределами вашего приложения, а именно, в верхней части телефона в системной строке состояния в виде значка с небольшим текстом.

Уведомление может висеть в строке состояние сколь угодно долго, пока сам пока пользователь не отреагирует на него, в отличие от Toast-сообщения, которое исчезнет через несколько секунд. В Android 5.0 добавилась возможность выводить уведомление в виде отдельного небольшого всплывающего окна (если устройство не заблокировано). В особых случаях уведомление можно выводить и на экран блокировки.

Пользователь может в настройках вашего приложения отключить уведомления в любой момент. Поэтому не стоит спамить пользователя ненужными сообщениями. Также нелишним будет проводить проверку, что уведомление будет выведено на экран.

Обратите внимание, что в имени класса спрятан кот (Notification), что намекает на целевое использование уведомлений. Уведомляйте пользователя только о самом важном, например, что пора кормить кота.

типы уведомлений в приложениях. notification cat. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification cat. картинка типы уведомлений в приложениях. картинка notification cat.

Когда пользователь открывает расширенное сообщение, Android запускает объект Intent, который определён в соответствии с уведомлением. Можно также конфигурировать уведомление с добавлением звука, вибрации и мигающих индикаторов на мобильном устройстве.

Этот вид уведомления удобен в том случае, когда приложение работает в фоновом режиме и должно уведомить пользователя о каком-либо важном событии. Фоновое приложение создаёт уведомление в строке состояния, но не запускает активность самостоятельно для получения пользовательского взаимодействия. Это должен сделать только сам пользователь в удобное ему время.

Чтобы создать уведомление в строке состояния, необходимо использовать два класса:

Показываем уведомление

Добавим на экран активности кнопку и напишем для демонстрации работы уведомления.

Для начала вам надо создать идентификатор уведомления. Он нужен, чтобы можно было различать уведомления друг от друга. Ведь вы можете создать идеальное приложение, которое уведомляло бы хозяина, что кота надо покормить (первое уведомление), погладить (второе уведомление), почистить лоток (третье уведомление). Если у вас будет один идентификатор, то каждое новое уведомление затрёт предыдущее и хозяин не увидит свои недоработки. Это не дело. Для идентификатора используйте какое-нибудь число. Только не надо оригинальничать, ничего не имею против числа 836, но вам определённо нужно сходить к психологу.

Также следует создать идентификатор канала. Каналы появились в API 26, но старые устройства будут просто игнорировать данный параметр при вызове конструктора NotificationCompat.Builder.

Далее формируется внешний вид и поведение уведомления через построитель NotificationCompat.Builder. Вы можете задать текст уведомления, значок, заголовок и прочие атрибуты. Для простого примера оставил минимальный набор настроек.

Не забывайте использовать вместо строк строковые ресурсы, пример лишь для знакомства.

Запустим пример и нажмём кнопку. В строке состояния появится значок. Раскроем уведомление и увидим текст. Уведомление можно смахнуть в сторону для удаления.

типы уведомлений в приложениях. notification20. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification20. картинка типы уведомлений в приложениях. картинка notification20. типы уведомлений в приложениях. notification21. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification21. картинка типы уведомлений в приложениях. картинка notification21.

Реакция на уведомления

Нажатие на уведомление ни к чему не приведёт. Нужен дополнительный код.

Создадим новые объекты Intent и PendingIntent, которые описывают намерения и целевые действия. В нашем случае мы хотим запустить нашу активность, когда пользователь среагирует на уведомление. Присоединяем объекты через setContentIntent().

Теперь можно создать уведомление и затем закрыть приложение. Если нажать на уведомление, оно откроет заново ваше приложение.

Сделаем уведомление более красивым, добавив другие необязательные настройки.

Теперь в уведомлении мы видим картинку. Метод setTicker() выводит сообщение в строке состояния на короткое время, а затем исчезает. Это работает только на старых устройствах и сейчас можно уже не использовать.

типы уведомлений в приложениях. notification2. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification2. картинка типы уведомлений в приложениях. картинка notification2.

Как я уже упоминал, если вам нужно обновить уведомление, то просто ещё раз отправьте его устройству под этим же идентификатором, но с другим текстом и картинкой.

Если уведомления разного типа, то нужно обновлять идентификаторы. Вспомним урок по подсчёту ворон и изменим код.

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

Совсем не обязательно запускать своё приложение, хотя это является распространённой практикой. Можете задать нужное поведение, например, запустить свой сайт по указанному адресу. Переделаем код:

Можно вывести индикатор прогресса, чтобы указать текущий ход выполнения задачи. Можно установить бесконечное выполнение:

Удаление собственных уведомлений

Вы можете из программы удалить своё уведомление, посланное по глупости (не вздумайте удалять уведомления про кормёжку кота!).

Если уведомления с указанным идентификатором не будет, то ничего страшного при удалении не произойдёт, поэтому проверку не нужно устраивать.

Использование настроек по умолчанию

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

Чтобы к уведомлению добавить звук и вибрации по умолчанию, используйте код:

Если хотите установить сразу все значения по умолчанию, задействуйте константу Notification.DEFAULT_ALL.

Звуковое сопровождение

Использование звуковых оповещений для уведомления пользователя о событиях, связанных с устройством (например, входящий звонок), стало привычным. Большинство стандартных событий, от входящих звонков до новых сообщений и низкого заряда батареи, объявляются с помощью звуковых мелодий. Android позволяет проигрывать любой звуковой файл на телефоне в качестве уведомления. Чтобы это сделать, нужно присвоить свойству sound путь URI:

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

Виброзвонок

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

Чтобы использовать виброзвонок, передайте в свойство vibrate объекта Notification массив значений типа long. Постройте массив, учитывая, что значения, отвечающие за продолжительность вибрации (в миллисекундах), чередуются со значениями, которые означают длину паузы между вибрациями.

Прежде чем использовать виброзвонок в своем приложении, необходимо получить нужные полномочия, прописав их в манифесте:

В следующем примере показано, как изменить уведомление, чтобы одна секунда вибрации сменялась одной секундой паузы на протяжении пяти секунд:

Светодиодная индикация

Объект Notification включает в себя свойства для настройки цвета и частоты мерцания светодиодов устройства. Здесь стоит обратить внимание, что конкретные модели устройств могут не содержать светодиодные индикаторы или иметь другие цвета.

Свойство ledARGB может устанавливать цвет для светодиодной подсветки. Свойства ledOffMS и ledOnMS позволяют регулировать частоту и поведение светодиодов. Вы можете включить светодиоды, присвоив свойству ledOnMS значение 1, а ledOffMS – 0. Присвоив им обоим значения 0, светодиоды можно выключить.

Настроив работу со светодиодами, необходимо также добавить флаг FLAG_SHOW_LIGHTS к свойству flags объекта Notification.

В следующем фрагменте кода показано, как включить на устройстве красный светодиод:

Текущие и настойчивые уведомления

Вы можете делать уведомления текущими и/или настойчивыми, устанавливая флаги FLAG_INSISTENT и FLAG_ONGOING_EVENT. Уведомления, помеченные как текущие, используются для представления событий, которые выполняются в данный момент времени (например, загрузка файла, фоновое проигрывание музыки). Текущие уведомления необходимы для сервисов, работающих на переднем плане. Пример установки флагов:

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

Настойчивые уведомления непрерывно повторяют звуковые сигналы, вибрируют и мерцают светодиодами, пока не будут остановлены. Подобные уведомления, как правило, используются для событий, которые требуют немедленного и своевременного внимания, таких как входящий звонок, срабатывание будильника или время кормёжки кота. В следующем фрагменте кода показано, как сделать уведомление настойчивым:

В методе getActivity() может понадобиться изменить флаг, например.

Существуют и другие флаги. Хотя в большинстве случаев используется просто 0.

В Android 5.0 пользователь может установить собственный уровень оповещений, нажав на кнопки увеличения громкости на домашнем экране. Появится диалоговое окно, в котором задаётся один из трёх доступных уровней.

типы уведомлений в приложениях. notification9. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification9. картинка типы уведомлений в приложениях. картинка notification9.

Запустить запущенную активность

Не сразу бывает заметно, но на самом деле, когда при нажатии на уведомлении у вас запускается активность, то запускается не старая активность, которая была на экране до этого, а новая. Это можно увидеть в примере, если, например, есть текстовое поле с текстом. Введите какой-нибудь текст в активности, а потом создайте уведомление, вызывающее активность. Вы увидите, что запустится новая активность с пустыми текстовым полем, хотя мы ожидали увидеть запущенную активность. Если вам нужен именно этот вариант, то используйте флаги для намерения.

Либо вы можете прописать в манифесте для нужной активности атрибут android:launchMode=»singleTop».

Меняем цвет значка

По умолчанию, значок выводится в сером круге. Вы можете изменить цвет круга, вызвав новый метод setColor(), который появился в API 21:

типы уведомлений в приложениях. notification14. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification14. картинка типы уведомлений в приложениях. картинка notification14.

Анимированный значок для уведомления

Запускаем код и создаём уведомление. Вы увидите, что в строке состояния выводится анимированный значок стрелки. Такой способ стоит использовать для действительно важных сообщений, чтобы понапрасну не раздражать пользователя.

типы уведомлений в приложениях. notification3. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification3. картинка типы уведомлений в приложениях. картинка notification3.

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

Вы можете попробовать поискать другие системные анимации, например, android.R.drawable.stat_sys_download или создать собственную анимацию.

На странице http://forum.xda-developers.com/showthread.php?t=1088677 энтузиасты выложили несколько готовых примеров анимации, которые можно скачать.

Расширенные возможности уведомлений

В Android 4.1 Jelly Bean появились дополнительные возможности для уведомлений через настройку стилей.

Добавьте на экран четыре кнопки.

Уведомление с тремя кнопками

Начнём с первого варианта. Теперь в уведомлениях можно размещать до трёх кнопок. Это может быть удобным, если приложение состоит из нескольких активностей или нужно предложить три разных варианта развития сценария. За появление кнопок в уведомлении отвечает метод setAction().

типы уведомлений в приложениях. notification5. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification5. картинка типы уведомлений в приложениях. картинка notification5.

Обратите внимание, что у кнопок текст может обрезаться и пользователь не увидит текст, поэтому вам следует придумать «говорящие» значки, по которым будет понятен смысл нажатия. В нашем примере при нажатии на любой из трёх кнопок запустится вторая активность.

На некоторых устройствах можно увидеть уведомление без значков и с текстом. Также были варианты, когда выводились только значки.

типы уведомлений в приложениях. notification16. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification16. картинка типы уведомлений в приложениях. картинка notification16.

Уведомление с длинным текстом. BigTextStyle().bigText()

Если вы внимательно смотрели на уведомление, то могли увидеть, что длинный текст, помещённый в метод setContentText(), вывелся на экран не полностью. Если информация слишком важная и вам хочется её показать в уведомлении полностью, то подойдёт вариант со стилем BigTextStyle:

типы уведомлений в приложениях. notification6. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification6. картинка типы уведомлений в приложениях. картинка notification6.

Уведомление с большой картинкой: BigPictureStyle().bigPicture()

Пример с большой картинкой аналогичен с предыдущим примером. Только мы задаём уже другой стиль для уведомления. Вместо стиля длинного текста используется стиль BigPictureStyle().bigPicture():

типы уведомлений в приложениях. notification7. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification7. картинка типы уведомлений в приложениях. картинка notification7.

Слишком большая картинка будет обрезана.

Уведомление в стиле InboxStyle

Есть ещё один стиль InboxStyle, напоминающий стиль писем в папке Входящие. Стиль разместит до пяти ваших строк в виде списка. Весь код приводить не буду, меняется только вызов setStyle()

типы уведомлений в приложениях. notification8. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification8. картинка типы уведомлений в приложениях. картинка notification8.

Уведомление в стиле мессенджера: MessagingStyle

Стиль MessagingStyle пригодится для отображения сообщений из мессенджера или чата. Появился в Android Nougat.

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

У класса Person есть другие полезные методы: setIcon() (значок), setData() (картинки) и др.

В setConversationTitle() указываем название беседы, удобно при разговоре двух и более котов. В поздних версиях не имеет эффекта, можно убрать.

Разговор строится через цепочку вызовов методов addMessage(), в которых указывается текст сообщения, время, отправитель. Количество сообщений может быть любым. При большом количестве (задано в MessagingStyle.MAXIMUM_RETAINED_MESSAGES) старые сообщения начнут удаляться автоматически.

типы уведомлений в приложениях. notification19. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification19. картинка типы уведомлений в приложениях. картинка notification19.

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

Приоритет

В API 16 появился новый метод setPriority() с константами по мере увеличения: NotificationCompat.PRIORITY_MIN, NotificationCompat.PRIORITY_LOW, NotificationCompat.PRIORITY_DEFAULT, NotificationCompat.PRIORITY_HIGH, NotificationCompat.PRIORITY_MAX.

Чем выше приоритет уведомления, тем выше он находится среди остальных уведомлений. Таким образом, важные сообщения всегда будут наверху, даже если поступили позже других менее важных сообщений. Не злоупотребляйте этой возможностью и трезво оцените важность вашего уведомления.

В Android 5.0 произошли небольшие изменения в поведении. Если установлены максимальные приоритеты Notification.PRIORITY_HIGH или Notification.MAX, то при вызове сначала уведомление появится в виде плавающего окна в верхней части экрана, а только потом закроется и останется в виде стандартного уведомления в строке состояния.

типы уведомлений в приложениях. notification13. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notification13. картинка типы уведомлений в приложениях. картинка notification13.

Пример изменений, которые произошли в API 23:

В уведомлениях можно использовать собственный макет, используя RemoteViews. Для стилизации макета изучите классы DecoratedCustomViewStyle и DecoratedMediaCustomViewStyle. Подключается через метод setCustomContentView().

В уведомлениях появилась возможность вводить собственный текст для ответа на какое-то сообщение. Для этого используется механизм Direct Reply, который использует RemoteInput API.

NotificationListenerService. Прослушка уведомлений

В API 18 (Android 4.3) появился новый класс NotificationListenerService, позволяющий следить за уведомлениями. С тех пор я следил за этой темой. Материал был написан по горячим следам в 2015 году. Если не работает, то разбирайтесь самостоятельно.

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

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

У службы есть два метода onNotificationPosted() и onNotificationRemoved() с параметром StatusBarNotification, который содержит полезные методы об уведомлении.

Пользователь должен явно разрешить приложению следить за уведомлениями через Настройки | Безопасность. Если на устройстве нет приложений, которые следят за уведомлениями, то в настройках вы не увидите никаких пунктов о разрешении. Когда вы создадите такое приложение, то там появится новый пункт Доступ к уведомлениям.

типы уведомлений в приложениях. notificationlistenerservice1. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notificationlistenerservice1. картинка типы уведомлений в приложениях. картинка notificationlistenerservice1.

Щёлкнув на нём, вы попадёте на страницу со списком программ, желающих следить за уведомлениями. Поставим флажок у своей программы.

типы уведомлений в приложениях. notificationlistenerservice4. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notificationlistenerservice4. картинка типы уведомлений в приложениях. картинка notificationlistenerservice4.

типы уведомлений в приложениях. notificationlistenerservice3. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notificationlistenerservice3. картинка типы уведомлений в приложениях. картинка notificationlistenerservice3.

После этого в настройках будет указано число приложений, имеющих соответствующее разрешение.

типы уведомлений в приложениях. notificationlistenerservice2. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notificationlistenerservice2. картинка типы уведомлений в приложениях. картинка notificationlistenerservice2.

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

Создадим новую службу.

В манифесте добавляем новый блок.

Первая кнопка запускает уведомление, чтобы увидеть, что приложение работает. Если вы хотите увидеть, как приложение следит за другими уведомлениями, то запустите Play Market и скачайте какую-нибудь игру или программу. Во время скачивания и установки генерируются уведомления. На следующем скриншоте видны уведомления от приложения Загрузки во время скачивания (com.android.providers.downloads) и от процесса установки (com.android.vending).

типы уведомлений в приложениях. notificationlistenerservice5. типы уведомлений в приложениях фото. типы уведомлений в приложениях-notificationlistenerservice5. картинка типы уведомлений в приложениях. картинка notificationlistenerservice5.

Вы можете программно запустить раздел с разрешением на использование службы.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *