Отправка push уведомлений android

Содержание
  1. Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих
  2. Управление push-уведомлениями на андроид: как включить и отключить
  3. Как настроить Push уведомления на Android?
  4. Как изменить рингтон для оповещений
  5. Режим не беспокоить
  6. Варианты применения Push уведомлений
  7. Варианты отключения появляющихся сообщений
  8. Способ 1: В каждом приложении
  9. Экспресс отключение
  10. Способ 2: Приложение NCleaner
  11. Как начать работу с Push-уведомлениями на Android
  12. Введение
  13. Зачем использовать Google Cloud Messaging?
  14. Предпосылки
  15. 1. Настройка проекта Android Studio
  16. Шаг 1: добавьте зависимости
  17. Шаг 2: обновите манифест
  18. 2. Получите ключ API сервера и идентификатор отправителя
  19. 3. Регистрация клиента
  20. Шаг 1. Создание службы регистрации
  21. Шаг 2. Создание службы InstanceIDListenerService
  22. Шаг 3: Запуск службы регистрации
  23. 4. Отображение Push-уведомлений
  24. 5. Добавление значков Push Notification
  25. 6. Запуск приложения для Android
  26. 7. Отправка Push-уведомлений
  27. Шаг 1. Создание сценария
  28. Шаг 2. Запуск сценария
  29. Заключение

Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих

. GCM users are strongly recommended to upgrade to FCM, in order to benefit from new FCM features today and in the future.

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

  • Android Studio
  • Код демо-проекта с github
  • 20 минут свободного времени

Шаг 1.

Скачайте демо-проект и откройте его в своей любимой Android Studio.

Теперь нам нужно пойти в Firebase console и добавить наш проект.

Затем нажимаем «Добавьте Firebase в свое приложение для Android».

Название пакета, если вы все делаете по манула: «com.google.firebase.quickstart.fcm».

На втором шаге скачиваем файл google-service.json и добавляем его к проекту.

Нажимаем готово, зависимости уже добавлены в тестовом проекте.

Подготовительная часть закончена, можно нажимать кнопку «Запустить приложение»

В процессе компиляции вы можете получить 2 ошибки:

Missing api_key/current key with Google Services 3.0.0

В этом случае вам нужно зайти в настройки проекта и перезакачать файл google-service.json. Это странный баг, но благо легко лечится.

Вторая ошибка — это:

Failed to resolve: com.google.firebase:firebase-core:9.0.0

Тогда вам нужно обновить Google Play Service и Google Repository. Ссылка на Stackoverflow.

После запуска приложения, в Android monitor увидите наш токен. Можно отправляться тестировать. Идем в консоль, ищем наше приложение, и идем в раздел Grow->Notifications:

Нажимаем создать сообщение:

Вводим наши данные, нажимаем отправить и наблюдаем в Android monitor как все пришло.

Теперь к самому интересному

Самый частый вопрос: как поменять иконку уведомления, когда приложение работает в бэкграунде?

Дело в том, что когда приложение находится в бэкграунде, то оно отправляется сразу в Notification center, и функция

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

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

в приложении, то отправляйте data-сообщения, т.е. без секции notification

Ссылка на API. Для тестов можно использовать старый-добрый CURL.

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

Источник

Управление push-уведомлениями на андроид: как включить и отключить

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

Как настроить Push уведомления на Android?

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

Выбираем пункт «Приложения и уведомления». Название актуально для версии Android 9.0, на более ранних системах раздел может называться «Уведомления». В нём перечислены:

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

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

Как изменить рингтон для оповещений

Рассмотрим, как настроить мелодию пуш уведомления на андроид. Звук настраивает отдельно с помощью внутренних инструментов. При нажатии на пункт «Звук», откроется контекстное меню с выбором программы для подбора файла. Если на смартфоне не установлено файловых менеджеров, по умолчанию будет выбрано «Хранилище мультимедиа».

Рекомендуем ознакомиться с материалом «Как создать папку на Андроид телефонах и планшетах.» В нём приведён пример лучших файловых проводников на смартфон.

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

Режим не беспокоить

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

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

Читайте также:  Создание гиф для андроид

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

Варианты применения Push уведомлений

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

  • Входящие звонки;
  • Ближайшие дни рождения;
  • Заявки в друзья;
  • Появление новых комментариев;
  • Входящие сообщения;
  • Выход интересных материалов.

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

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

Нажимаем на нужный продукт и видим список с разными типами действий и ползунками отключения. Для каждого варианта настраивается отдельный звук или действие при режиме «Не беспокоить».

Статья «Clean Master на Android» поможет узнать, как контролировать свободное пространство на телефоне и держать в чистоте операционную систему.

Варианты отключения появляющихся сообщений

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

Способ 1: В каждом приложении

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

Если в списке «недавних» нет нужного продукта, переходим к полному перечню. Его можно отсортировать по новизне или частоте появления оповещений.

Экспресс отключение

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

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

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

Способ 2: Приложение NCleaner

Независимые компании разработали специальное программное обеспечение, которое автоматически очищает панель от «мусорных уведомлений». Найти такие программы можно Play Market. Вводим в поиске «HeadsOff» или «Notification Manager». Самый популярный вариант – это NCleaner. Скачиванием приложение и открываем его.

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

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

Источник

Как начать работу с Push-уведомлениями на Android

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Введение

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

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

Google Cloud Messaging, GCM для краткости — это бесплатный сервис, который вы можете использовать для отправки push-уведомлений вашим пользователям. В этом уроке вы узнаете, как использовать его для создания приложения для Android, которое может получать push-уведомления, и простой Python скрипт на стороне сервера, который может их генерировать и отправлять.

Зачем использовать Google Cloud Messaging?

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

Обычно это достигается за счет поддержания постоянного TCP/IP-соединения — соединения, которое остается постоянно открытым между сервером и клиентом. Это может показаться замечательным, но если у вас популярное приложение, поддержка тысяч постоянных соединений между вашим сервером и устройствами ваших пользователей может быть очень дорогостоящим.

Google Cloud Messaging — это служба, которая решает эту проблему, выступая в качестве посредника между вашим сервером и устройством вашего пользователя. С помощью GCM Google’s Cloud Connection Server, часто называемый CCS, управляет постоянными подключениями для вас. Он также обеспечивает надежную доставку ваших push-уведомлений.

Читайте также:  Сони плеер андроид 4пда

Предпосылки

Чтобы следовать за мной, вам нужно:

  • Последняя версия Android Studio
  • Python 2.7.6 или выше
  • Устройство под управлением Android 4.4 или выше с установленными сервисами Google Play

1. Настройка проекта Android Studio

Запустите Android Studio и создайте новый проект с пустой Activity . Если вы использовали значения по умолчанию, проект должен включать класс Java в MainActivity.java.

Шаг 1: добавьте зависимости

В этом проекте мы будем использовать Google Services gradle plugin для настройки GCM. Включите его в проект, добавив следующую строку в раздел dependencies в build.gradle проекта:

Затем примените плагин в модуле app build.gradle:

Чтобы иметь возможность использовать API GCM, добавьте com.google.android.gms: play-services Как compile зависимость в том же файле:

Если вы нажмете кнопку «Синхронизировать сейчас», вы увидите следующую ошибку:

Чтобы исправить ошибку, нажмите ссылку «Установить репозиторий и синхронизировать проект».

Шаг 2: обновите манифест

Внутри файла AndroidManifest.xml проекта создайте и используйте специальное разрешение C2D_MESSAGE на основе имени пакета вашего проекта. Убедитесь, что для параметра ProtectionLevel установлено разрешение в значение signature.

Уведомления поступают в виде трансляций. Для обработки этих трансляций нашему приложению требуется BroadcastReceiver . Однако нам не нужно создавать его вручную. Вместо этого мы можем использовать класс GcmReceiver как BroadcastReceiver .

У BroadcastReceiver должен быть intent-filter , который отвечает на действие com.google.android.c2dm.intent.RECEIVE , а имя его category должно соответствовать имени пакета вашего проекта. Добавьте в манифест следующий код:

2. Получите ключ API сервера и идентификатор отправителя

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

Начните с нажатия кнопки «Выбрать платформу». Затем нажмите кнопку «Включить службы для моего приложения Android App». Когда вы это сделаете, вас попросят указать ваше имя и имя пакета Android для вашего приложения. Убедитесь, что указанное вами имя пакета Android соответствует имени пакета, которое вы ввели при создании проекта Android Studio.

Затем нажмите кнопку «Выбрать и настроить службы» внизу. Теперь вы можете выбрать сервисы Google, которые хотите добавить в приложение.

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

Плагин Google Services, который мы добавили ранее, требует правильной работы файла конфигурации. Создайте файл, нажав кнопку «Создать конфигурационные файлы».

После того, как файл был сгенерирован, загрузите его и поместите в каталог app проекта Android Studio.

3. Регистрация клиента

GCM идентифицирует устройства Android с помощью токенов регистрации. Поэтому наше приложение должно иметь возможность регистрироваться на каждом Android-устройстве, на котором оно установлено.

Шаг 1. Создание службы регистрации

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

Создайте новый класс Java под названием RegistrationService.java, сделайте его подклассом IntentService и переопределите его метод onHandleIntent .

Внутри метода onHandleIntent мы можем использовать API идентификатора экземпляра для создания или получения регистрационного токена. Во-первых, создайте экземпляр класса InstanceID , используя его метод getInstance .

Теперь мы можем использовать метод getToken объекта InstanceID для получения регистрационного токена в виде String . GetToken ожидает идентификатор отправителя как один из его аргументов. Поскольку мы добавили файл google-services.json в наш проект, мы можем передать идентификатор отправителя методу, используя R.string.gcm_defaultSenderID .

Если вы хотите видеть содержимое токена регистрации для целей отладки, вы можете зарегистрировать его как отладочное сообщение, используя метод Log.d .

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

Теперь я покажу вам, как подписаться на topic под названием my_little_topic. Требуется всего две строки кода. Сначала создайте новый экземпляр класса GcmPubSub , используя его метод getInstance . Затем вызовите его метод subscribe и передайте ему токен регистрации вместе с названием темы.

Теперь наше приложение может получать каждое push-уведомление, опубликованное в my_little_topic.

Наконец, определите службу в AndroidManifest.xml.

Служба регистрации завершена.

Шаг 2. Создание службы InstanceIDListenerService

Токены регистрации периодически обновляются. Следовательно, каждое приложение для Android, использующее GCM, должно иметь InstanceIDListenerService , который может обрабатывать эти обновления. Поэтому создайте новый файл Java под названием TokenRefreshListenerService.java и сделайте его подклассом InstanceIDListenerService . Внутри метода onTokenRefresh этого класса все, что нам нужно сделать, это просто начать процесс регистрации снова, запустив службу регистрации с использованием метода Intent и startService .

Читайте также:  Сбербанк оплата телефоном без карты андроид самсунг галакси

Добавьте следующий код в TokenRefreshListenerService.java:

Эта служба должна иметь возможность реагировать на действие com.google.android.gms.iid.InstanceID . Поэтому, определяя службу в AndroidManifest.xml, добавьте соответствующий intent-filter .

Шаг 3: Запуск службы регистрации

Чтобы процесс регистрации начался сразу после запуска приложения, мы должны запустить класс RegistrationService внутри метода onCreate у MainActivity . Для этого создайте для него Intent и используйте метод startService .

4. Отображение Push-уведомлений

GCM автоматически отображает push-уведомления в лоток уведомлений, как только они будут получены. Однако он делает это только в том случае, если связанное приложение содержит GCMListenerService .

Создайте новый класс Java с именем NotificationsListenerService и сделайте его подклассом GCMListenerService . Если вы не хотите обрабатывать вставленные данные самостоятельно, вам не нужно писать код внутри этого класса. Мы можем оставить этот класс пустым.

Определяя службу в AndroidManifest.xml, убедитесь, что вы добавили intent-filter , который позволяет ему отвечать на com.google.android.c2dm.intent.RECEIVE .

5. Добавление значков Push Notification

У каждого push-уведомления должен быть связанный с ним значок. Если у вас нет такой возможности, вы можете получить ее в Material Design Icons Library.

Как только вы загрузите значок, поместите его в папку res вашего проекта. Я буду использовать ic_cloud_white_48dp в качестве значка.

6. Запуск приложения для Android

Теперь наше Android-приложение завершено. После того, как вы скомпилируете его и запустите на Android-устройстве, вы сможете увидеть маркер регистрации в логах logcat.

Нажмите кнопку «Назад» на устройстве, чтобы выйти из приложения. Это необходимо, потому что GCM автоматически отображает push-уведомления только в том случае, если пользователь не использует приложение. Если вы хотите, чтобы уведомления отображались даже в том случае, когда приложение запущено, вам нужно будет создать уведомления самостоятельно в NotificationsListenerService с помощью класса Notification.Builder .

7. Отправка Push-уведомлений

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

Вы можете запустить этот скрипт с локального компьютера или с удаленного веб-сервера, к которому у вас есть доступ к SSH.

Шаг 1. Создание сценария

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

В верхней части файла импортируйте модули urllib2 и urllib . Мы будем использовать эти модули для отправки данных на Google Cloud Connection Server. Импортируйте модуль json , потому что отправляемые данные должны быть действительными JSON. Наконец, чтобы получить доступ к аргументам командной строки, импортируйте модуль sys .

Затем создайте переменную, в которой хранится ключ API сервера, который вы записали ранее. Ключ должен быть частью каждого HTTP-запроса, который мы делаем в CCS.

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

Создайте новый словарь Python для представления данных, которые должны быть отправлены в CCS. Чтобы наше приложение для Android могло получать уведомление, оно должно быть опубликовано в тему my_little_topic. Поэтому добавьте ключ to в словарь, и установите его значение в /themes/my_little_topic.

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

  • body
  • title
  • icon

Убедитесь, что значение icon совпадает с именем значка, который можно использовать в вашем проекте Android.

Преобразуйте словарь в строку JSON, используя функцию dumps модуля json :

Все, что нам нужно сделать, это отправить строку JSON на https://gcm-http.googleapis.com/gcm/send. Для этого создайте новый объект Request и установите dataAsJSON в качестве своих данных. Затем установите заголовок Authorization в MY_API_KEY и заголовок Content-type в application/json.

Наконец, чтобы выполнить запрос и получить ответ, передайте объект запроса функции urlopen и вызовите его метод read .

Теперь скрипт Python завершен и готов к использованию.

Шаг 2. Запуск сценария

На этом этапе мы готовы отправить push-уведомления всем устройствам, на которых установлено наше приложение. Откройте терминал и введите каталог, в котором вы создали send.py.

Передайте имя сценария исполняемому файлу python вместе со строкой для заголовка уведомления, а другое — для тела уведомления. Вот пример, который вы можете использовать:

Если ошибок нет, вы должны получить ответ, который выглядит так:

Если вы проверите свое Android-устройство, вы увидите новое уведомление в лотке уведомлений.

Заключение

Теперь вы знаете, как отправлять push-уведомления своим пользователям. На этом занятии вы узнали, как создать Android-приложение, способное регистрироваться и получать уведомления, публикуемые по определенной теме. Вы также узнали, как создать скрипт Python, который может публиковать уведомления.

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

Чтобы узнать больше о облачных сообщениях Google, см. Руководство по облачным сообщениям.

Источник

Оцените статью