возможно такого способа нет
Такой способ есть, вместо HTTP нужно использовать непосредственно TCP/IP, устанавливаем соединение, и сервер, когда хочет, шлет пакет устройству, и устройство тоже так может со своей стороны, нет никакой необходимости слать пакет (запрос), чтобы получить ответный пакет.
Или хотя бы использовать Long Polling, это долгое, а не частое опрашивание, так снижается частота запросов, это намного проще сделать, при этом сервер по-прежнему остается HTTP-сервером, но лучше TCP/IP.
Какой из вариантов предпочтительней?
Очевидно, что первый, меньше нагрузка на сеть и на процессор, нет "бесполезной" нагрузки на сеть, думаю, что батарея будет разряжаться насколько-то медленнее.