- Как изменить звук уведомлений Android для разных приложений
- Изменение звука уведомления отдельных приложений Android 9 и 8
- Как изменить звуки разных уведомлений на Android 7 и 6
- Push уведомления в Android. Грабли, костыли и велосипеды
- Управление push-уведомлениями на андроид: как включить и отключить
- Как настроить Push уведомления на Android?
- Как изменить рингтон для оповещений
- Режим не беспокоить
- Варианты применения Push уведомлений
- Варианты отключения появляющихся сообщений
- Способ 1: В каждом приложении
- Экспресс отключение
- Способ 2: Приложение NCleaner
Как изменить звук уведомлений Android для разных приложений
По умолчанию уведомления от разных приложений Android приходят с одним и тем же выбранным по умолчанию звуком. Исключение составляют редкие приложения, где собственный звук уведомления установили разработчики. Это не всегда удобно, а возможность уже по звуку определять вайбер это, инстаграм, почта или SMS, может быть полезным.
В этой инструкции подробно о том, как настроить разные звуки уведомлений для различных приложений на Android: сначала на новых версиях (8 Oreo и 9 Pie и Android 10), где эта функция присутствует в системе, затем — на Android 6 и 7, где по умолчанию такой функции не предусмотрено. Также может быть полезным: Как изменить или поставить свой рингтон на Android.
Примечание: звук для всех уведомлений можно изменить в Настройки — Звук — Мелодия уведомления, Настройки — Звуки и вибрация — Звуки уведомлений или в аналогичных пунктах (зависит от конкретного телефона, но везде примерно одинаково). Для того, чтобы добавить собственные звуки уведомлений в список, просто скопируйте файлы мелодий в папку Notifications во внутренней памяти вашего смартфона.
Изменение звука уведомления отдельных приложений Android 9 и 8
В последних версиях Android присутствует встроенная возможность устанавливать разные звуки уведомлений для разных приложений.
Настройка выполняется очень просто. Далее скриншоты и пути в настройках приведены для Samsung Galaxy Note с Android 9 Pie, но и на «чистой» системе все необходимые шаги почти в точности совпадают.
- Зайдите в Настройки — Уведомления.
- Внизу экрана вы увидите список приложений, отправляющих уведомления. Если отображаются не все приложения, нажмите по кнопке «Просмотреть все».
- Нажмите по приложению, звук уведомления которого нужно изменить.
- На экране будут показаны разные типы уведомлений, которые может отправлять это приложение. Например, на скриншоте ниже мы видим параметры приложения Gmail. Если нам нужно изменить звук уведомлений для входящей почты на указанный почтовый ящик, нажимаем по пункту «Почта. Со звуком».
- В пункте «Со звуком» выбираем нужный звук для выбранного уведомления.
Аналогичным образом вы можете поменять звуки уведомлений для различных приложений и для разных событий в них или, наоборот, отключить такие уведомления.
Отмечу, что существуют приложения, для которых такие настройки недоступны. Из тех, что встретились лично мне — только Hangouts, т.е. их не так много и они, как правило, и без того используют собственные звуки уведомлений вместо системных.
Как изменить звуки разных уведомлений на Android 7 и 6
В предыдущих версиях Android нет встроенной функции для установки различных звуков для различных уведомлений. Однако это можно реализовать с помощью сторонних приложений.
В Play Маркет доступно несколько приложений, имеющих такие функции: Light Flow, NotifiCon, Notification Catch App. В моем случае (тестировал на чистом Android 7 Nougat) наиболее простым и работоспособным оказалось последнее приложение (на русском языке, root не требуется, исправно работает при заблокированном экране).
Изменение звука уведомления для приложения в Notification Catch App выглядит следующим образом (при первом использовании придется дать много разрешений, чтобы приложение могло перехватывать системные уведомления):
- Зайдите в пункт «Профили звука» и создайте свой профиль, нажав по кнопке «Плюс».
- Введите имя профиля, затем нажмите по пункту «Default» и выберите нужный звук уведомления из папки или из установленных мелодий.
- Вернитесь на предыдущий экран, откройте вкладку «Приложения», нажмите «Плюс», выберите приложение, для которого нужно изменить звук уведомления и установите для него созданный вами звуковой профиль.
На этом всё: тем же способом вы можете добавить звуковые профили для других приложений и, соответственно, изменить звуки их уведомлений. Скачать приложение можно из Play Маркет: https://play.google.com/store/apps/details?id=antx.tools.catchnotification
Если по какой-то причине это приложение у вас не заработало, рекомендую попробовать Light Flow — оно позволяет не только менять звуки уведомлений для разных приложений, но и другие параметры (например, цвет светодиода или скорость его мигания). Единственный недостаток — не весь интерфейс переведен на русский язык.
Источник
Push уведомления в Android. Грабли, костыли и велосипеды
На написание данной статьи меня подтолкнула задача, которая была поставлена передо мной в одном из рабочих проектов: реализовать Push-уведомления в приложении. Казалось, все просто: штудируешь документацию, примеры и вперед. К тому же, опыт работы с уведомлениями уже был. Но не тут то было…
Сервис, в рамках которого реализовано приложение под Android, предъявляет довольно жесткие требования к работе Push-уведомлений. Необходимо в пределах 30-60 секунд оповестить пользователя о некотором действии. При успешном оповещении с устройства пользователя отправляется запрос на сервер с соответствующим статусом. Из документации известно, что сервис GCM (Google Cloud Messaging) не гарантирует доставку PUSH-уведомлений на устройства, поэтому в качестве backdoor варианта, при нарушении этих временных рамок, наш сервис уведомляет пользователя с помощью SMS сообщения. Поскольку стоимость SMS сообщения существенно выше чем PUSH-уведомления, необходимо максимально сократить поток SMS сообщений на клиентские устройства.
Проштудировав документацию и прикрутив пуш-уведомления, мы разослали нескольким клиентам первую сборку приложения для теста и стали ждать. Результаты были примерно следующими:
- при активном Wifi соединении все работает идеально: уведомления доставляются, клиенты рады.
- при активном мобильном интернете началось самое веселье.
Некоторые клиенты писали, что испытывают задержки в доставке пушей, либо получали одновременно и PUSH и SMS, что достаточно не практично. Другие писали, что вовсе не получали уведомлений, а только SMS. У третьих, как и у нас на тестовых устройствах, все было ок. Собрав с недовольных клиентов максимально возможную информацию, стали разбираться в проблеме и вывели следующий список ограничений (этот список позже вылился в полноценный FAQ):
- включенный режим Энергосбережения (например, Stamina на устройствах Sony) влияет на работу Push уведомлений;
- у пользователя обязательно должен быть минимум 1 активный Google аккаунт на устройстве;
- необходимо удостовериться в том, что на устройстве установлена актуальная версия приложения “Сервисы Google Play”;
- проверить, не отключены ли уведомления для приложения (галочка на страничке приложения в настройках телефона);
- проверить, не ограничена ли работа фонового режима для приложения (настройка расположена в меню «Использование данных»);
- в документации к GCM указано, что уведомления рассылаются только по определенным портам, поэтому настройки роутера, файервола и антивируса так же стоит учитывать.
Разослав данную памятку по всем клиентам, мы снова стали ждать результатов. И они оказались снова «не очень». Стали копать дальше.
На данном этапе очень сильно помогла статья, написанная ребятами из Mail.ru. В ней очень подробно описаны тонкости реализации GCM на клиентской стороне, а так же моменты, в связи с которыми отказываются работать Push уведомления в мобильных сетях. В конечном счете было принято решение о том, чтобы держать свое соединение с сервером в связке с GCM.
Перед тем, как приступить к решению, стоить выделить несколько очень важных моментов, которые позволяют сузить круг потенциально «нерабочих» устройств:
- проблема возникает только при подключении к мобильному интернету;
- по данным клиентов, проблема возникает на версии андроида 4 и выше.
И так, перейдем к реализации.
Бывалый разработчик под Android сходу скажет, что решений задачи как минимум 2: использовать Service или AlarmManager. Мы попробовали оба варианта. Рассмотрим первый из них.
Для того, чтобы создать неубиваемый системой сервис, который постоянно будет висеть в фоне и выполнять нашу задачу, мы использовали метод:
- notificationId — некоторый уникальный идентификатор уведомления, который будет выведен в статус баре и в выезжающей шторке;
- notification — само уведомление.
В данном случае обязательным условием является отображение уведомления в статус баре. Такой подход гарантирует то, что сервису будет дан больший приоритет (поскольку он взаимодействует с UI частью системы) в момент нехватки памяти на устройстве и система будет выгружать его одним из последних. Нам это уведомление не нужно, поэтому мы воспользовались следующим велосипедом: достаточно запустить одновременно с первым сервисом второй и для обоих сервисов в качестве notificationID использовать одно и тоже значение. Затем убить второй сервис. При этом уведомление пропадет из статус бара, но функциональные и приоритетные возможности первого сервиса останутся.
Реализовав данный подход, мы отправили сборку на тест. По результатам выяснилось, что система все-таки выгружает сервис, а по логам мы видели, как происходили существенные временные разрывы при запросе данных в фоне с нашего сервера. Поэтому приступили к реализации второго варианта — AlarmManager.
AlarmManager — это класс, который предоставляет работу с, грубо говоря, «будильником». Он позволяет указать время, по достижении которого система отправит широковещательное уведомление, которое позволит пробудить наше приложение и даст ему возможность выполнить необходимые действия. В работе этого метода есть некоторые ограничения, и их необходимо обработать:
- данные о «будильниках» будут стерты после перезагрузки устройства;
- данные о «будильниках» будут стерты после обновления приложения.
Первыми граблями, на которые мы наступили, был метод
который позволяет установить повторяющийся с некоторым интервалом «будильник». Прикрутив данный способ, стали тестировать, и тесты показали обратное — «будильник» не повторялся. Стали разбираться в чем дело, посмотрели документацию. И именно там нашли ответ на вопрос — начиная с 19 API lvl (Kitkat) абсолютно все «будильники» в системе стали разовыми. Вывод — всегда читайте документацию.
Эти грабли не были поводом для расстройства, ведь решение задачи довольно простое — запускать единоразовый «будильник» и после срабатывания переустанавливать его. При реализации этого подхода мы наткнулись на следующие грабли — оказалось, что для разных уровней API необходимо по разному устанавливать будильники, при этом в документации ничего сказано не было. Но данная проблема решилась достаточно просто — методом «тыка» и «гугления». Ниже представлен пример кода, позволяющий правильно устанавливать «будильники»:
Хочу обратить внимание на флаг AlarmManager.RTC_WAKEUP — именно с помощью него система позволит нашему приложению «проснуться» при неактивном экране, когда устройство находится в заблокированном состоянии.
Данный подход с «будильникам» дал нам нужный результат — приложение в фоне корректно опрашивает сервер на наличие новых данных. Сейчас мы дорабатываем алгоритм. На данный момент реализуем и тестируем следующую оптимизацию, которая позволит сузить круг устройств и тем самым уменьшить нагрузку на сервер:
- в сообщении, отправленном средствами GCM на устройство, содержится некоторый уникальный ID;
- получив данные GET запросом в фоновом режиме проверяем, существуют ли уже запись с таким ID на устройстве;
- если локально на устройстве таких данных нет, мы запоминаем этот ID и время его получения T1;
- ждем PUSH с таким же ID, при получении запоминаем время T2 и проверяем разницу между T2 и T1;
- если разница составляет больше некоторого временного критерия (значения), то на устройстве наблюдается проблема с доставкой уведомлений и для корректной работы сервиса необходимо постоянно запрашивать данные в фоновом режиме с сервера (критерий советую выбирать исходя из решаемой задачи. В нашем случае, был выбран критерий равный 5 минутам);
- данную разницу стоит вычислять несколько раз, например 5-10 раз, только после этого делать вывод о том, что устройство действительно содержит проблему с получением 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. Теперь программа будет автоматически определять ненужные сообщения и скрывать их. При необходимости, в настройках можно изменить затрагиваемые программы.
Оповещения – это не только полезная функция, позволяющая ничего не пропустить, но и важный инструментов управления для разработчиков. Приложения постоянно присылают актуальные новости, завлекая пользователей, вне зависимости от важности и момента. Поэтому важно фильтровать поток информации, даже от важных постоянно используемых продуктов.
Источник