Поведение приложений Android VOIP в режиме ожидания

Я работаю над устаревшим приложением VOIP на Android. В настоящее время он не использует технологию Google Cloud Messaging, а просто навсегда сохраняет собственное TCP-соединение.

Недавно Google представил предварительную версию Android M с режимом Doze.

Итак, вопрос: есть ли какой-нибудь обходной путь, как приложение может принимать входящие вызовы/сообщения в режиме ожидания без перепроектирования всей системы для использования GCM?


comment
Как GCM поможет вам в этом? Предполагая, что ваши вызовы VOIP передаются через SIP, а ваши сообщения через XMPP, входящие события должны быть по этим протоколам, а не через внешний триггер GCM, который другие клиенты, с которыми вам нужно взаимодействовать, не будут знать об отправке.   -  person zmarties    schedule 09.09.2015


Ответы (2)


Вы можете использовать ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, чтобы запросить у пользователя разрешение игнорировать по оптимизации батареи. Тем не менее, дважды проверьте оптимизацию для режима ожидания и режима ожидания, кажется, разрешено только для корпоративный VoIP/IM (см. вопросы #33114063 и #31154128 )

person cuihtlauac    schedule 05.11.2015

Нет, GCM кажется единственным способом. Посмотрите отличный анализ проблем с спящим режимом, включая сеть и GCM, здесь: https://commonsware.com/blog/2015/06/03/random-musing-m-developer-preview-ugly-part-one.html

person sec_aw    schedule 08.09.2015