2012-07-04 2 views
3

Я работаю над Android-приложением, которое будет получать push-уведомления с сервера GCM. Я использую php как сторонний сервер.GCM android, Push Уведомления не принимаются

У меня есть несколько вопросов.

  1. Когда я отправить запрос на сервер от г см мой PHP скрипт дает мне следующий ответ

    {"multicast_id":8799227316277290616,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1341388064110557%5d17b789f9fd7ecd"}]} 
    

    Теперь ответ кажется хорошо, но вы можете увидеть знак% в MESSAGE_ID. Это нормально? если это не так, как я могу получить правильный message_ID?

  2. Когда я использую json_decode в моем PHP скрипт и эхо этого multicastid это дает мне что-то вроде этого

    8.7992273162773E+18 
    

    , и я уверен, что это даст тот же тип значения, когда я эхо message_id также. Итак, почему это не соответствует правильному значению?

  3. Последний вопрос: когда я отправляю этот запрос, который кажется правильным, и откройте мое приложение для Android, там нет уведомлений. Это вызвано вышеупомянутыми ошибками или есть какая-то другая проблема?

+0

Я получаю ответ как {"multicast_id": 8544536079568251693, "success": 1, "failure": 0, "canonical_ids": 0, "results": [{"message_id": "0: 1349952207538943% 87d780faf9fd7ecd "}]} Но сообщение не публикуется на устройстве. Что может быть проблемой? –

+0

Возможно, вы неправильно выбрали значения в устройстве. Проверьте имена параметров, которые вы отправляете с сервера и возвращаетесь в устройство. – Mj1992

+0

Привет, Mj, я проверил параметры, они в порядке, но все та же проблема сохраняется. –

ответ

3

У меня была аналогичная проблема с C2DM. Причина в том, что имя приложения для Android не было тем же, для которого я запросил квоту. Он исправлен после исправления имени пакета.

+0

извините, я не понял, что вы на самом деле предлагаете. Я запускаю программу на эмуляторе, так это работает на эмуляторе? и я не получил то, что вы сказали о сопоставлении имени приложения. – Mj1992

+0

У эмулятора должен быть установлен рынок Android. поэтому вам может потребоваться загрузить специальный AVD для этого ... по умолчанию теперь можно работать. Также имя пакета приложения для Android должно быть тем же, для которого вы зарегистрировались в Google. –

+0

У меня нет Android-рынка, установленного на моем эмуляторе, мне нужно купить учетную запись на рынке Android для этого, или Google предоставляет его бесплатно (специальный AVD)? и Google не спрашивал меня о имени пакета приложений, когда я подписывался на андроид gcm api. Вы говорите о регистрации на рынке? Потому что я еще не зарегистрирован на рынке. – Mj1992

0

В моем случае приложение Android не запускалось, поэтому push-уведомления не могут быть получены. Я начал приложение, а затем получил сообщения.