2015-06-29 3 views
0

В настоящее время отправка сообщения с моего сервера дает мне ответ «ОК», то есть сообщение отправлено в GCM, и оно будет получено устройством, если оно не находится в автономном режиме, которое оно получит, когда оно будет в сети. Можно ли определить, пока устройство еще не получило его, поскольку оно в настоящее время отключено?gcm - можно ли узнать, отправлено ли сообщение автономному устройству?

+1

Не об этом я знаю. Могу ли я спросить, зачем нужна эта информация? GCM предназначен для доставки уведомлений. То, что они не должны использовать, - это что-то критическое или важное для функции вашего приложения. Вы просто должны доставлять с ним сообщения, которые могут быть или не быть доставлены и, возможно, со значительной задержкой. Проверка того, что сообщение уже отправлено, противоречит этой идее. –

+0

Я думаю, что мы слишком полагаемся на обмен между сервером и клиентским приложением с помощью push-уведомлений. То, что мы хотим достичь, - это то, что приемное устройство отключено и, следовательно, не может получить сообщение, мы отправим его через SMS. Вот почему мы хотим узнать, находится ли приемник в настоящее время в автономном режиме и поэтому не может получать push-уведомление через GCM. –

+1

Это никогда не будет работать должным образом автоматически. Посмотрите на обычные приложения для обмена сообщениями, например, на видеовстречи или приложение «Что». Вы выбираете при отправке сообщения, если оно предполагается доставлять через SMS или через Интернет. Единственное, что Hangouts или Whats App делает для вас, это отслеживать, если человек подключен к сети и автоматически переключается с сети на смс, если получатель отправил вам sms. Что вы должны сделать, так это: –

ответ

1

Невозможно запросить статус сообщения GCM после его отправки. Один из вариантов заключается в том, чтобы ваше приложение запрашивало delivery receipt или вручную вызывало сообщение через HTTP. Тогда, если ваш сервер не получит ack в течение определенного времени, вы можете отправить его через SMS.

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

0

теперь поддерживает GCM «сообщение доставляется на устройство», просто установите «delivery_receipt_requested»: правду и дело eith извед .. Входящие

see this

0

Кажется, вы используете протокол HTTP для отправки сообщений.

Если вы используете XMPP вместо этого и добавьте "delivery_receipt_requested": true в ваш JSON, GCM отправит вам сообщение о доставке после доставки. (вы можете найти документы here)
В противном случае вам придется обрабатывать его вручную по HTTP.

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