Pull to refresh

Comments 34

Все больше и больше статей про разработку под Android! Это не может не радовать!
Всегда пожалуйста!
Отличная статья! Очень хорошая идея Google! Очень радуюсь этой фичи, можно кучу отличных вещей сделать! Например для twitter-клиентов сделать апдейт по нотификации через C2DM. А некоторые IM — клиенты уже это поддерживают, например Trillian.
Какая идея?? Подобная нотификация уже давно есть на iOS и WP7, а гугловцы только в 2.2 допилили. Это вынужденная необходимость чтобы всякая ерунда в процессах не висела и не мучила батарею телефона.
>Подобная нотификация уже давно есть на iOS и WP7

Подобная нотификация есть в BlackBerry c самого начала существования BIS, т.е. не то что «раньше, чем в айфоне», но даже «раньше, чем айфон вообще появился на свет» :)
Здорово, что кто-то написал про это на хабре.

Делал для себя приложение которое мониторит обновления помеченные как rss2mobile в гугл ридере и присылает их мне через c2dm. Обычно рсс читалки едят трафик и батарейку, а тут даже и не заметно, что приложение работает.
Все никак не хватало времени написать об этом на сдесь.

кстати, для меня полезной была еще эта статья:
mylifewithandroid.blogspot.com/2010/10/push-service-from-google.html
Добавил ссылку в пост
Жду статью о вашем приложении. И не только статью ;)
Приложение стабильно работает, сообщает мне о новых сериях сериалов и статьях на хабре.
Но оно вообще без интерфейса — новые уведомления показываются в нотификейшн ареа, при клике покаывается лист вью со списком полученного, при выборе статьи — веб вью. Снизу тестовая кнопка «hello world».

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

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

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

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

Ждем с нетерпением.
>Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

— Странное предложение :-)
То есть как бы девайс должен с облаком общаться, а тут можно подумать, что говорится о внутрисистемной коммуникации приложений :-)
Конечно же, для последнего должно хватать BroadcastReceiver.

Продолжение публиковать планируете?
>Продолжение публиковать планируете?

Когда наберется побольше интересного материала, пока же его недостаточно для полноценного топика.
Правильно ли я понимаю, что для получения этих уведомлений телефон должен быть подключен к GPRS?
Должен быть подключен интернету. GPRS, Wi-fi и т.д.
"к интернету", конечно же.
Т.е. этот сервис не годится, когда надо доставить сообщение быстро, ибо соединение с Интернетом есть далеко не всегда. Жаль.
Да, когда нет интернета не годится, т.к. нужно соединение с Google'им облаком.
Для передачи сообщений на устройство используется GoogleTalk/Jabber, или нет?
Простите, если я не правильно понял ваш вопрос. Для передачи сообщений на устройство используется C2DM, а GoogleTalk/Jabber в этом посте не применяется, хотя, возможно, они и используют C2DM в своем работе.
Я хотел узнать, какой протокол используется для доставки сообщений? Отдельный демон, ожидающий данные, или что-то иное, например, существующий Jabber (GoogleTalk)?
Просто, когда обсуждали принципы работы приложение Chrome to phone, остановились на том, что он использует сервисные сообщения существующей реализации джаббер-протокола, который достаточно удобен, т.к. сам поддерживает подключение и ожидает сообщения.
>Просто, когда обсуждали принципы работы приложение Chrome to phone

Где это обсуждение можно почитать?
Кажется, это было устное обсуждение принципов работы данной программы ))
Собственно, вопрос был таким: какой транспорт используется и какая «служба» отвечает за получение? Работает ли технология при отключённой фоновой синхронизации и/или автосинхронизации?
Ok. Про протокол, не знаю, об этом информации нет. Если говорить про уровень приложения то скорее всего это какой-то их собственный протокол, который более нигде не применяется, если говорить про уровень транспорта, то похоже, что это HTTPS, но это все мои догадки.
Служба? Вас имя, отвечающего за это, процесса интересует, зачем? Не интересовался, т.к. для разработчика эти данные не нужны, на офф. сайте информации тоже нет.
Насчет синхронизации, да, должно работать, т.к. такого требования нет в сисреках, и из логики, странно бы было отказывать в получении нотификаций приложениям, которые ничего не знаю про настройки аккаунтов у пользователя.
Спасибо, интересно.

Немного не в теме, и не особо разбирался, но первая мысль — а безопасная ли фишка? Ну я в том плане что нормален тот факт что некий сервер может послать сообщение для обработки всем пользователям приложения при условии что оно даже не запущено? К примеру есть у злоумышленника серверное приложение. Также вместе с этим в маркет или куда либо ещё запускается клиентская часть в виде какого либо приложения раздающего няшки. В какой то момент пользователей набирается много, человек запускает сервер, и высылает адрес какой либо машинки в сети. Облако передает адрес всем смартфонам с клиентской частью, оно запускается, и начинает к примеру DDoS-ить адресата.

Оно действительно возможно, или я чего не понял?
1. Android приложение регистрируется в C2DM, тем самым сообщает о своей готовности принимать сообщения, и получает Registration ID. Registration ID — это уникальный идентификатор устройства, зная который, серверная часть может отправить сообщение получателю.
А, блин, мне самому нужно глаза протереть: я умудрился пропустить часть про «вместе с этим в маркет или куда либо ещё запускается клиентская часть в виде какого либо приложения раздающего няшки» :)
судя по манифесту для этого нужны разрешения, которые отображаются при установке приложения. Поэтому если не доверяете приложению, то не ставьте.

То, что вы описали можно сделать и без c2dm.
Да по моему на разрешения мало кто смотрит по большей части, да и не все поймут что оно c2dm такое.

Можно и без него, но тут сервис какой нибудь к примеру повесить придется, да ещё и мониторить постоянно. Тут же если я все верно понял приложение вообще может месяцами не подавать признаков жизни пока не придет команда.
Может кому полезно будет. В начале года, когда знакомился с Node.JS написал небольшой модуль для работы с c2dm: github.com/SpeCT/node-c2dm
Спасибо, пригодится
< «C2DM является одной из фундаментальных возможностей платформы Android»

Видимо именно по этой причине google до сих пор держит C2DM в лабсах и оставляет за собой право менять API если им так захочется.
Нам всем нужен C2DM, но использовать его в реальных системах пока довольно рискованно.

Извините, как-то промахнулся с ответом. Он в следующем комментарии.
Наоборот, кажется, что все устаканилось и повсеместно применяется. Или я чего-то не знаю?
Sign up to leave a comment.

Articles