- Samsung Push Service: что это такое и как это работает
- Зачем вам это приложение?
- Что такое Push-сообщения?
- Возможные недостатки использования сервиса Samsung Push
- Как отключить службу Samsung Push
- Что за программа Samsung Push Service и зачем она?
- Зачем нужен Пуш Сервис
- Как отключить сервис
- Нужно ли отключать
- Push уведомления в Android. Грабли, костыли и велосипеды
Samsung Push Service: что это такое и как это работает
Samsung Push Service – это приложение, которое отправляет уведомления о бренде на ваш телефон. Возможно, он уже существует на вашем телефоне, и если его нет, вы можете загрузить его из Google Play Store и сразу начать использовать.
Зачем вам это приложение?
Если вы используете несколько приложений Samsung, возможно, вам будет приятно узнать, что служба Samsung Push предоставляет уведомления для всех из них.
Когда приложение в семействе Samsung получит новую информацию, вы увидите ее через службу Samsung Push. В результате, это приложение может быть простым способом оставаться в курсе всех вещей Samsung.
Что такое Push-сообщения?
Push-сообщение – это уведомление, которое появляется на вашем экране, даже если вы не используете приложение. Push-сообщения Samsung появляются на вашем устройстве несколькими способами. Они отображаются в панели уведомлений вашего телефона, отображают значки приложений в верхней части экрана и генерируют текстовые уведомления.
Вы можете указать типы уведомлений, которые вы видите, изменив настройки службы Samsung Push в разделе Приложения вашего телефона. Скорее всего, вы сможете найти приложение на своем телефоне, только если сначала зайдете в Показать системные приложения и поищите там Samsung Push Service .
Затем вы можете настроить уведомления приложения и настройки разрешений там.
Возможные недостатки использования сервиса Samsung Push
Если вы думаете о покупке нового телефона, вам нужно знать, что Samsung является брендом некоторых самых ожидаемых телефонов этого года. Однако некоторые люди не удовлетворены тем, что приложение Push Service установлено на многих из них на заводе.
Ненужные приложения особенно расстраивают, когда телефонам не хватает внутреннего пространства, заставляя пользователей делать все возможное, чтобы удалять ненужные элементы.
Также имеются сообщения о том, что служба Samsung Push отправляет рекламные объявления на гаджеты, но в официальном описании приложения нет ничего, что представляло бы рекламу как возможную.
Avast включил его в отчет о приложениях для телефонов Android за 2017 год и прямо упомянул, что служба Samsung Push Service истощает ресурсы, разряжая батарею.
Пользователи также говорят, что они постоянно получают уведомления об обновлении приложения, и что эти напоминания раздражают их.
Как отключить службу Samsung Push
Учитывая приведенные выше факты, вы можете отключить службу Samsung Push. Вы можете сделать это, выполнив следующие действия:
Чтобы отключить все уведомления, перейдите в раздел Настройки , затем выберите Приложения, Показать системные приложения и Сервис Samsung Push .
Нажмите Уведомления и сдвиньте тумблер рядом с настройкой ON, чтобы отключить все уведомления OFF .
В противном случае снова нажмите на запись Samsung Push Service в списке приложений, затем нажмите кнопки Отключить или Принудительный останов в верхней части.
Имейте в виду, однако, что некоторые пользователи сообщают, что эти кнопки не активны на их устройствах, потому что Samsung Push Service является системным приложением. Есть смешанные мнения о том, могут ли люди пытаться удалить его или нужно ли хранить его на своих телефонах, при этом большинство согласны с тем, что это бесполезно и не повредит устройствам.
Если вы используете Интернет только на своем телефоне, полагаясь на его данные, а не на соединение Wi-Fi, вы можете отключить службу Samsung Push, чтобы она не работала, если вы не подключены к Wi-Fi.
Нажмите Настройки , затем выберите Подключения , а затем Использование данных .
Нажмите Использование мобильных данных , прокрутите вниз до приложения Samsung Push Service и выберите его.
Наконец, отключите параметр Разрешить использование фоновых данных .
Если вы уверены, что хотите навсегда отказаться от службы Samsung Push, вы должны знать, что для ее удаления необходимо загрузить стороннее приложение. ROM Toolbox Lite – это один из вариантов, который люди используют для его удаления из рутированных телефонов.
Услуга Samsung Push входит в состав приложения Samsung Apps. Поэтому, если ваш телефон попросит вас обновить Samsung Apps, он переустановит Samsung Push Service без вашего ведома. Затем вам нужно будет повторить шаги, описанные выше.
Источник
Что за программа Samsung Push Service и зачем она?
Samsung Push Service – это встроенная программа, которая не занимает много системных ресурсов и выполняет очень узкоспециализированную функцию. Если вам нужна более подробная информация о службе Samsung Push Service что это такое, зачем это приложение, как его отключить – то всё это я подробно расписал в инструкции ниже.
Зачем нужен Пуш Сервис
Пуш-уведомления – это удобные или надоедливые оповещения, которые появляются обычно в верхней части экрана телефона, когда какая-то программа выполнила какое-то действие или хочет сообщить вам важную информацию.
А что это за программа на Андроид – Samsung Push Service? Она отвечает за всплывающие оповещения для служб Samsung – лишь для них. Сюда входят Apps, Wallet, Pay, ChatON и другие службы.
Разработчики указывают, что Push Service отвечает за такие функции:
- новые сообщения появляются на «шторке» – панели уведомлений;
- возникает всплывающее окно с уведомлениями Samsung;
- на иконке программы появляется метка о сообщениях или уведомлениях.
Как отключить сервис
Удалить программу в обычном режиме нельзя, так как она является встроенной и системной. Если на телефон установлены рут-права, то да, вы можете полностью убрать её с помощью стороннего диспетчера приложений с рут правами. Выполняйте это действие, если хорошо понимаете всё, написанное в этом абзаце.
Если вы не сразу поняли, для чего он нужен – Самсунг Пуш Сервис, – а оказалось, что удалять его не стоило, то его можно заново установить из Google Play.
В обычном случае, без получения рут-прав, вы можете деактивировать службу. Во инструкция, как отключить Пуш Сервис на Самсунге:
- Перейдите в «Настройки».
- Откройте «Приложения» или «Диспетчер приложений».
- Возможно, нужно дополнительно выбрать «Показать системные» или «Все».
- Пролистайте список и найдите Samsung Push Service. Нажмите на него.
- Выберите кнопку «Остановить».
Отключённое приложение не занимает место в оперативной памяти, не использует системные ресурсы, не принимает и не отправляет информацию: то есть практически не отличается от полностью удалённого.
Нужно ли отключать
Пользователи говорят о таких последствиях отключения или удаления сервиса:
- Ошибка Push Service is not enabled в Samsung Pay не позволяет нормально использовать бесконтактные платежи телефоном.
- Вы не сможете пользоваться встроенной функцией «Найти мой телефон».
- Не будут приходить уведомления, если вам что-то пришлют в ChatON.
- Возможны и другие ошибки, не указанные здесь.
На самом деле, сервис не занимает много места ни в памяти, ни среди ресурсов телефона. Перед тем как удалить Samsung Push Service, подумайте, будут ли критичны для вас указанные ошибки. Если нет, то можете избавиться от встроенной программы. То же самое можно сделать, если она надоедает своими уведомлениями, но абсолютно вам не нужна. Но если она вам не мешает, я не рекомендую её отключать или удалять.
Источник
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 уведомлений (таким образом исключается ситуация банального разрыва соединения, таймаута и пр.);
- необходимо прогонять данный алгоритм периодически (например, раз в неделю, или после обновления ОС на устройстве).
Всем добра. И поменьше подобных костылей.
Источник