как пользователи отказываются от сообщения c2dm

мы внедряем c2dm для отправки уведомлений пользователям. мы хотим, чтобы пользователь мог «отказаться» в начале. если они соглашаются, то мы регистрируем устройство и отправляем идентификатор на наш сервер, чтобы сохранить его для последующей доставки и отслеживать его по какому-то уникальному идентификатору устройства.

проблема в том, что в Android нет надежного способа получить идентификатор устройства. все, что я читал, говорит: «просто сгенерируйте руководство при первом запуске приложения». ну, это нормально, но если пользователь запускает приложение, соглашается, затем удаляет и переустанавливает приложение, а затем отказывается, у меня нет возможности удалить это старое устройство (поскольку идентификатор устройства второй установки новый).

я проверил, и старый идентификатор регистрации c2dm работает даже после удаления и повторной установки.

какие-либо предложения? как другие позволяют пользователям отказаться от уведомлений. как вы отслеживаете их устройства?


person john ellis    schedule 21.01.2012    source источник


Ответы (2)


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

Если он совпадает, покажите уведомление. Если он не совпадает, пропингуйте свой сервер и скажите ему, чтобы он отказался от этого регистрационного идентификатора.

person Mark Phillip    schedule 22.01.2012

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

Вместо GUID я бы хотел получить связанную с ними учетную запись Android Market (т. е. адрес электронной почты). Таким образом, переустановки ничего не изменят, если они используют одну и ту же учетную запись Android Market.

person Marvin Pinto    schedule 21.01.2012