2012-05-08 2 views
1

Приложение Android C2DM push, которое я разработал, имеет ссылку моего отправителя (пример: «[email protected]») в коде приложения. Случай 1: Когда я устанавливаю это приложение на устройство Android, устройство имеет идентификатор gmail как «[email protected]» в настройках «Учетные записи» и «Синхронизация». Приложение зарегистрировано успешно с C2DM, но оно не получает ни одно из нажатых сообщений.Android C2DM, идентификатор отправителя в приложении Push

Case2: Когда я использую тот же идентификатор отправителя («[email protected]») в Аккаунтах и ​​Синхронизации Android-устройства. Я получаю все сообщения, которые я нажимаю.

Почему случай 1 не работает и случай 2 (идентификатор отправителя) успешно?

+1

Это звучит странно и не должно быть так - я тоже не вижу такого поведения в своих приложениях - можете ли вы показать свой манифест? – ligi

ответ

0

Пожалуйста, убедитесь, что вы вышли из встроенного приложения gtalk вашего телефона, если вы не вышли из приложения gtalk, тогда это создаст неоднозначность между gtalk и ур персональным приложением для обмена сообщениями с сервера google. он не может отправлять сообщения в любое приложение и предоставлять исключение.

Для получения более подробной информации нажимного уведомления, пожалуйста, проверьте https://developers.google.com/android/c2dm/

лучшего C2DM tutorialis, http://www.vogella.com/articles/AndroidCloudToDeviceMessaging/article.html

0

Это путь, который C2DM работает. Имеет смысл, что он работает таким образом, поскольку для этого требуется адрес электронной почты для registration id и authentication token.

При отправке push-сообщения ваш сторонний сервер использует идентификатор регистрации, построенный на (вероятно) «[email protected]», и токен аутентификации, построенный на том же электронном письме. Сервер Google просматривает ваше устройство и пытается найти эту учетную запись определенного адреса электронной почты. У вас может быть несколько учетных записей на устройстве, но по крайней мере одна из них должна быть учетной записью, используемой для регистрации устройства.

Зачем Google запрашивал письмо в любом случае, если бы это не имело значения? Было бы намного проще использовать уникальный идентификатор устройства.

+1

Да, это то, что я наблюдал. Мое наблюдение - как разработчик приложения - мне нужно жестко закодировать мой идентификатор gmail (теперь это [email protected] id) в приложении. Когда пользователь устанавливает мое приложение на своем устройстве, он уже использует свой файл [email protected] для своего устройства Android. Сказать, что функционирование моего приложения не зависит от персонализации пользователя (персональный только для поддержания присутствия настойчивости в Android App Store). Поэтому я должен жестко закодировать свой senderid в приложении, чтобы сделать работу с уведомлением о push на устройстве. Правильно ли я понимаю? – Zuliox

+1

Нет. Ему не нужен ВАШ электронный адрес, чтобы использовать C2DM. Вы можете позволить ему использовать его электронную почту для регистрации на устройстве, но это также потребует, чтобы он также «зарегистрировался» на сервере, чтобы получить токен аутентификации с тем же адресом электронной почты. Тогда связь может быть установлена. Я знаю, что Google запрашивает вашу учетную запись gmail при регистрации на странице c2dm, но я не думаю, что она налагает один уникальный адрес для каждого приложения. Существуют приложения, которые используют C2DM и работают успешно для более чем 1 электронной почты. –

Смежные вопросы