В помощь мобильному разработчику
Android

Расширенные уведомления в Android N с прямым ответом

Александр Алексеев

Одним из моих любимых моментов в Android является система оповещений, позволяющая разработчикам непосредственно связываться с пользователями за пределами главного приложения. С запуском Android N, уведомления станут привычным визуальным обновлением, включающим в себя новый дизайн, измененный по размеру и содержанию. Это сделано для того, чтобы   сделать его проще для восприятия, с новыми присущими только  Android N деталями, такими как имя приложения и модуль расширения (экспандер). Вот хорошая схема изменений от Android M до N:

Android N Notification

Визуальные изменения – не единственные, которые будут обновлены в Android N, будет целый набор новых особенностей предусмотренных для разработчиков, в которых они же увидят целый ряд преимуществ для использования. Комплект уведомлений  позволит разработчикам группировать уведомления при помощи метода группировки (Builder.SetGroup() ).  Настраиваемые представления были усовершенствованы и стало возможным использование системы уведомлений при помощи заголовков, действий и расширенных макетов с настраиваемым представлением.И наконец, моя любимая особенность – это прямой ответ, позволяющий пользователям отвечать на сообщение через уведомление теперь не придётся открывать приложение. Это, так же как и в приложениях Android Wear, которые могут отсылать обратно сообщения в главное приложение.

2016-09-19_1810

Начало

В предыдущих версиях Android, все разработчики должны были управлять уведомлениями и действием всех нажатий на экран, а сейчас они могут запустить Activity или Service/BroadcastReceiver для определенных действий. Суть прямого ответа заключается в том, чтобы распространить работу дистанционного ввода, позволяющего пользователям отвечать на сообщения без запуска приложения. Это самый лучший метод для обработки ответных сообщений в пределах Activity, так пользователь может решить нажать ли ему на уведомление или же воспользоваться старым способом.

Предварительное требование нужно для выполнения прямого ответа. Для этого нужен BroadcastReceiver или Service, которые могут обрабатывать или получать отклик от пользователя. Например, мы хотим запустить уведомление из MainActivity, которое отправит Intent со значением “com.xamarin.directreply.REPLY”. Далее наш BroadcastReceiver отфильтрует должным образом. В первую очередь убедитесь в том, что  Android Support Library v4 NuGet установлен в приложениях для Android. (Необходимо для корректной работы приложения с уведомлениями).

В MainActivity мы создадим несколько постоянных строк, которые в дальнейшем смогут рассматриваться в коде:

Создание Pending Intent

Pending Intent в Android – это описание Intent и целевого воздействия для их достижения. Поэтому мы хотим создать тот, который будет запускать процесс ответа, если пользователь использует Android N или же сможет запустить MainActivity с более старых устройств.

Создание и прикрепление RemoteInput

Основной принцип работы прямого ответа заключается в создании и прикреплении RemoteInput, который скажет Android, что мы собираемся добавить прямой ответ, и именно это позволит пользователям вводить текст.

После создания RemoteInput  мы можем создать новое действие и прикрепить его к новому действию:

Создание и отправка уведомлений

После создания дистанционного ввода уже можно отправлять уведомление.

Теперь уведомление работает, и мы можем видеть дистанционный ввод:
notification

Обработка ввода

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

Это будет выполняться в сервисе фоновой обработки или же в BroadcastReceiver при помощи специализированного фильтра целей “com.xamarin.directreply.REPLY”.

Здесь вы можете увидеть BroadcastReceiver, который будет высвечивать на экране всплывающее сообщение и обновлять уведомление и останавливать индикатор выполнения в нем.

Узнать больше

Чтобы узнать больше о новых функциях в Android N, включая улучшенные уведомления, не забудьте прочитать Android N — Руководство по началу работы. Вы можете найти полный пример прямого ответа и других усовершенствований уведомлений в Галерее примеров

 

Автор: James Montemagno
ИсточникОфициальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Udemy logo

Написать ответ