Обновить
14
0
Юрий Пресняков@pyur

Разработчик ПО

Отправить сообщение
я пытался такое реализовать (писал выше). система нещадно душит соединения фоновых процессов (рознится от вендора к вендору оболочки). я так понял надо писать приложение для персистентного соединения, системного уровня, и ставить под рутом.
мне ответили (выше), что всякие фейсбуки и без рутов реализуют такие фичи. но так глубоко в андроид разработку я не погружался, поэтому подтвердить или опровергнуть не могу.
спасибо за поддержку ))
первая мысль от таких комментариев и была — стартаперы с вейпами, смузи и спиннером. побоялся, что шапками забросают.
рад что на хабре ещё есть и адепты старой школы ) батя может в СИ.
p.s. ничего не имею против новой школы, когда то и я был новой школой, писал на новомодном PHP3, и вызывал недоверчивые взгляды у коллег.
спасибо, поржал )
я надеюсь те, кто будет копипастить догадается прочитать примечание под кодом, в котором рекомендуется захардкоженные константы заменить переменными.
хотел изобразить суть максимально наглядно, чтоб читающим пришлось прокручивать в голове поменьше абстракций.
формально в документации прописано 4KB на одно сообщение.
бинарные данные придётся чем-то вроде base64 заворачивать, а это ещё 33% overhead'а.
ну и текст самого сообщения пару сотен байт.
спасибо. полезная информация. обязательно проверю её и упомяну в будущих статьях.
я пытался написать свой способ держать перманентную связь со своим сервером. столкнулся с парой фатальных подводных камней.
операционка (или оболочки) любят глушить все сокеты в фоновых процессах. и сам гугл настоятельно советует использовать для такого рода задач GAPS.
я так понял, что для того, чтоб избавиться от GAPS, надо писать свой аналог, и ставить его обязательно под рутом. а это уже несколько иной уровень хардкорности.
да и в целом, без GAPS смартфон превратится в некий аналог тыквы, что устроит ну очень малое количество пользователей.
сам офигел, когда взялся делать! думал «сейчас, за пару часиков слабаю, тремя строчками кода». ага… на два дня пропал в чертогах гугловых api доков… вернулся весь седой и с бородой до колен.
как оказалось, уведомления это лишь верхушка айсберга, там целая туча всякой аналитики через тот же канал гоняется, вплоть до того, как часто вы чихали, с какой силой и продолжительностью. заботятся о вас и вашем здоровье.
но с какой-то стороны перманентно мутирующие интерфейсы это даже благо, например они таким образом не дают остаться без работы (а следственно и без хлеба) толпам программистов.
можно в методе 'onMessageReceived' проверить состояние через 'ActivityManager'.
ActivityManager.RunningAppProcessInfo appProcessInfo = new ActivityManager.RunningAppProcessInfo();
есть )) я ещё помню те досотовые времена, когда люди по городу с обычными радиотелефонами ездили ) в радиусе 4-5 км от дома вполне себе был приём.
сегодня хорошей альтернативой служат всякие IoT радиомодули, LoRa и т.п. дальнобойность тоже может измеряться километрами, но вот скорость — аховая. для задач уведомлений — подойдёт.
(про пейджеры ничего не напишу, они уже через сотовую сеть работали)
я не навязываю никому именно этот способ. каждый пляшет так, как хочет.
я так понял, что я обманул ваши ожидания, чтож, бывает. возможно я действительно недостаточно точно сформулировал и описал цели в предисловии.
ничего не имею против телеграма.
не понимаю, про какое «моё» приложение вы говорите. я предлагаю способ, с помощью которого каждый сможет встроить пуш технологию в его собственное мобильное приложение.
если вы в целом, про то, что невозможно получать уведомления без приложения, то да, хоть какое то приложение да нужно.
каких то особенных преимуществ, чем описанный способ вроде нет. разве что мелочи вроде кастомного звука, или мигания цветным светодиодом, у кого он есть.
но мой способ будет очень актуален для тех, кто собирается разрабатывать какое-то своё комплексное приложение, в которое до кучи можн будет добавить пуш. по которому помимо просто уведомлений можно и данные гонять в приложение с сервера.
ну я только упомянул, что это возможно. я не обещал рассказать как это сделать. я только хотел подчеркнуть, что Firebase это очень универсальная платформа.
в целом мне показалось, что вся сложность именно в отправке (90%), с приёмом у меня не возникло совсем никаких проблем (10%). весь приём в андроид приложении заключался в добавлении «пары строк и пары классов».
думаю сильно не ошибусь, если предположу, что и на других платформах с приёмом не будет шибко больших проблем.
по поводу телеграмов ответил выше, посмотрите по тайм-коду «22:21». может поэтому и не понимаю.
ну не умею я в телеграм, и видимо я тут такой не один. да и для работы уведомлений в таком случае понадобится установить сам телеграм. а что если у меня он не установлен, и, более того, я умышленно не хочу его устанавливать? а тут своё, ламповое, без тонны закладок от любимых корпораций.
а по поводу, почему в коде не предусмотрена обработка фейлов — поверьте, в реальных программах всё обрабатывается. тут умышленно всё изображено в максимально упрощённом виде.
вы не поверите, но есть люди и их много, которым нравится писать свои велосипеды, свои чатики, свои социальные сети. есть люди которые разрабатывают мобильные приложения как хобби, изредка, и у им возможно тяжело разобраться в некоторых вопросах. а это туториал, который доступно, пошагово, подробно раскрывает тему.
про отдельный клиент, который прям вот только для уведомлений, речи не было. добавить можно в любое уже имеющееся, или планируемое приложение.
прикольно. еще, пока гуглил тему, видел ребят pushall_ru. всё это готовые решения «искаропки». статья для тех, кто любит всё делать сам. я даже акцентировал (видимо недостаточно) внимание на том, что не юзаются стандартные библиотеки, предлагаемые гуглом, а всё выполняется максимально прозрачно, через HTTP запросы.
соглашусь, для тех кто давно в андроид разработке всё может показаться через чур уж очевидным, но я ориентировался на тех кто не в теме, но очень хочет себе в смартфончик уведомления. по каналы я видел, но не заметил, что это уже стало обязательным требованием. если это действительно окажется актуальным, припишу в заключении.
ну так то да, можно и самому себе сообщения вконтактик отправлять. эта статья всё таки больше про то, и для тех, кому нравится разрабатывать свои приложения, а не пользоваться готовыми. для велосипедостроителей, если вам так будет угодно. а также для тех, кто хочет разбираться в вопросе чуть глубже, чем тяп-ляп и в продакшн.
наверно по той же причине, по которой некоторые люди поднимают своё облачное хранилище на домашнем сервере, вместо Dropbox, да что уж там, свои почтовые серверы поднимают, да и много чего ещё.
наверно по той же причине, по которой некоторые люди поднимают своё облачное хранилище на домашнем сервере, вместо Dropbox, да что уж там, свои почтовые серверы поднимают, да и много чего ещё.

Информация

В рейтинге
Не участвует
Откуда
Старый Оскол, Белгородская обл., Россия
Дата рождения
Зарегистрирован
Активность