- Wap-push сообщения в телефоне: что это такое, как отключить?
- Зачем нужны push-уведомления?
- Как это отключить?
- Push уведомления в Android. Грабли, костыли и велосипеды
- Push-сообщение — что это такое? Как включить и как отключить Push-уведомления?
- Что это такое
- Кто отправляет сообщения
- Операционные системы
- Apple и iOs
- Wap push-сообщения
- Apple. Как включить push?
- Android-гаджеты
- Так ли это нужно?
Wap-push сообщения в телефоне: что это такое, как отключить?
04.08.2021 2 Просмотры
Ежедневно на смартфонах появляются различные типы уведомлений от всевозможных встроенных приложений. Однако, если на них пользователь соглашается, то на рекламные сообщения от сайтов (WAP-push) он, скорее всего, не соглашался. Со временем это раздражает все сильнее и сильнее и человек начинает искать способы навсегда отписать от этого спама.
Зачем нужны push-уведомления?
При помощи них пользователи смогут увидеть:
- Сообщения, лайки, отзывы и новые публикации в социальной сети. Например, во ВКонтакте, Инстаграме, Viber или Facebook.
- Новости от игр или иных приложений, установленных на устройстве.
- Будущие события и мероприятия.
- Новые сообщения и пропущенные звонки.
- Уведомления о неполадках в системе.
- Обновление приложений.
- Рекламные предложения. Именно к последним и относятся WAP-push.
Иными словами, Wap-push представляет собой сообщение, сформированное для конкретного пользователя. В нем содержится ссылка на конкретный ресурс. Если щелкнуть по этому уведомлению, то человек автоматически перейдет на сайт с услугой, либо вообще сразу окажется подписан на нее. По этой причине, нужно осторожнее вести себя с подобными всплывающими сообщениями. Иначе можно невольно оформить дорогую подписку.
Как это отключить?
Существует довольно простой алгоритм, который подойдет для любого устройства. Единственное, названия функций могут слегка отличаться в разных моделях:
- Потребуется зайти в меню настроек телефона.
- Далее нужно перейти в раздел «все приложения», либо в раздел «сторонние».
- Далее щелкнуть по пункту «Уведомления» и перевести ползунок с параметра «Всплывающие уведомления». То есть, сделать опцию неактивной.
Источник
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-сообщение — что это такое? Как включить и как отключить Push-уведомления?
Современные технологии не стоят на месте, операционные системы в том числе. С каждым новым обновлением они получают все больше инструментов и полезных функций. Поэтому многие пользователи нередко задаются различными вопросами о той или иной опции. Например, push-сообщение. Что это вообще такое? Зачем оно нужно? Об этом мы и расскажем ниже.
Что это такое
Многим пользователям персонального компьютера знакомы такие вещи, как уведомления от системы или антивирусной программы, которые оповещают о какой-то проблеме. Появляются такие оповещения обычно в правом нижнем углу экрана. Это и есть самые первые push-сообщения. Уже потом разработчики мобильных операционных систем перенесли эту идею на мобильные устройства. Так было создано push-сообщение. Что это? Это короткое уведомление, которое появляется обычно вверху экрана планшета или смартфона.
Кто отправляет сообщения
Естественно, приложения. Они уведомляют пользователя о том или ином событии, факте или проблеме. Например, игры чаще всего сообщают о появлении новых акций или пополнении энергии игрока. Пользователь сам решает то, каким приложениям можно отправлять push-сообщения, а каким этого нельзя делать. Настроить эти уведомления не так уж и сложно, как могло бы показаться.
Операционные системы
Итак, push-сообщение (что это такое, мы уже немного разобрались) чаще всего сейчас применяются на мобильных платформах. На каких именно? Прежде всего на «Андроиде», который является самой популярной мобильной операционной системой на сегодняшний день. Кстати, именно компания Google, которая является разработчиком Android, первой ввела в эксплуатацию push-сообщение. Что это означает? Именно владельцы планшетов и смартфонов под управлением мобильной операционной системы «Андроид» первыми на себе прочувствовали всю прелесть мгновенных уведомлений от приложений.
Apple и iOs
Что касается известного американского «яблочного» бренда, то они не сильно отстали от своих конкурентов. Спустя год после введения на «Андроиде» мгновенных оповещений в Apple тоже запустили эту полезную опцию на iOs 3.0. Примечательно, что немногим позже ее же реализовали специалисты компании на операционной системе OS X. То есть, все «яблочные» ноутбуки («Макбуки») тоже могут получать мгновенные оповещения в область уведомлений. Например, из социальных сетей. Это удобно, поскольку можно, не заходя в приложение, ответить на сообщение друзьям или отследить последние новости своей страницы. И на мобильных устройствах этим нередко пользуются.
Wap push-сообщения
Это тоже одна из разновидностей уведомлений. Но их главное отличие от мгновенных сообщений от приложений заключается в том, что отображаются в этих сообщения ссылки на различные интернет-ресурсы. Открыв такое уведомление, операционная система предлагает выбрать браузер, с помощью которого можно открыть страницу. Если, конечно, пользователь ранее не определил какой-то браузер стандартным. По умолчанию в этом случае все ссылки из wap push-сообщений открываются в нем. Многие компании, которые отправляют рассылки своим клиентам, уже перешли на этот способ уведомлений. Что удобно и пользователям, которым нет необходимости читать полотна текста, и отправителям, которые таким образом увеличивают свою клиентскую базу и просмотры на сайте.
Apple. Как включить push?
Оценив всю прелесть мгновенных оповещений, многие задаются вопросом, как же именно их включить. Это не так уж и сложно. Итак, как включить push-уведомления на iPhone, iPad, iPod? Все довольно просто. Сначала необходимо войти в настройки (значок с шестеренкой на рабочем столе устройства). Затем пролистать до области, где отображаются все установленные приложения. После выбора нужного в правой части экрана отобразятся настройки именно выбранной программы. Там же всегда есть область, где можно выбрать способ уведомления. Напротив push нужно протянуть скролинг, пока он не изменит свой цвет на зеленый. Дополнительно можно выставить настройки и звука, чтобы оповещения не только отображались на экране, но и издавали сигнал, который можно услышать, если устройство, например, лежит в кармане. Примечательно, что все push-уведомления можно просмотреть, протянув верхнюю часть экрана вниз. Это актуально тогда, когда приходит очень много оповещений от различных приложений, а пользователь не успевает их прочитать по каким-то причинам. Отключить «пуш-уведомления» можно точно так же, как и включить. Все манипуляции совершаются из центра оповещений, который находится в настройках.
Android-гаджеты
С ними знакома большая часть пользователей мобильных устройств, поэтому для многих не является секретом, как именно включить push-уведомления. Android позволяет отправить мгновенное сообщение почти из каждого приложения. Есть, конечно, исключения, но это зависит не столько от самой системы, сколько от разработчиков программы. Или из-за того, что установлена старая версия приложения, где просто еще не было этой опции. Открыв нужную программу, пользователю нужно зайти в настройки (чаще всего они отображаются в виде трех горизонтальных полосок или шестеренки), пройти в часть, где описываются уведомления. Именно там и включаются или отключаются push-сообщения.
Так ли это нужно?
Многим пользователям не хочется получать массу уведомлений от второстепенных и не самых востребованных приложений. Поэтому можно просто отключить push-сообщения в настройках, чтобы они не надоедали. А вот в полезных и популярных приложениях, наоборот — включить. Так, чаще всего пользуются спросом уведомления из социальных сетей, почтовых программ, некоторых игр.
Источник