2012-02-29 1 views
0

Я разрабатываю приложение, которое полагается на C2DM, чтобы получать уведомления о некоторых новых данных, которые будут получены из службы REST. Я успешно реализовал функцию C2DM android, но поведение по Wi-Fi отличается от подключения по 3G. Сообщения принимаются мгновенно через 3G, но я должен вручную отключить Wifi и включить «льготный период» ~ 1 мин, в котором я получаю их мгновенно.C2DM поведение по Wi-Fi и 3G

Мой вопрос: есть ли способ программно перезапустить соединение или вызвать выбор извещения?

EDIT: Я реализовал AsyncTask, который периодически «пересоединяет» соединение с точкой доступа (используя WifiManager.reassociate()) каждую минуту и ​​половину. Тем не менее, мы не уверены в правильности этого решения.

ответ

0

Я видел похожие проблемы. Похоже, что в некоторых случаях сообщения C2DM не передаются по Wi-Fi-соединениям, когда они превышают 3G. В связи с этим я также заметил, что Android-устройства «отбрасывают» push-соединение, поэтому сообщения не доставляются (в моем случае решение может состоять в том, чтобы поместить устройство в режим самолета, а затем снова включить сеть).

Это подтверждает тот факт, что все приложения, использующие C2DM должны быть построены таким образом, что даже если толчок обмена сообщениями не удается, приложение по-прежнему работает (даже если сообщения/обновления медленнее, потому что есть время от времени опроса на сервер)

I лично не хотел бы связываться с Wi-Fi-соединением, поскольку это может вызвать проблемы у пользователя.

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