Учитывая, что система находится в режиме ожидания, вы несколько ограничены и почти наверняка будете зависеть от внешнего триггера и / или возможностей системной биографии для устройства.
Основным методом, который приходит на ум, является Wake-On-LAN, если система имеет такую возможность, то у вас может быть центральный «сервер», запускающий пакеты «пробуждения» к устройству (ам) с желаемым интервалом и тогда система заработает, в чем я не уверен, так это в способности определить, находилась ли система в режиме ожидания с помощью простого вызова. Одним из решений может быть запуск службы в целевой системе и получение текущего времени через заданный промежуток времени, после чего ваше приложение будет находиться в спящем режиме в течение этого промежутка времени, а когда в следующий раз будет получено время, проведите быстрое сравнение с сохраненное время, чтобы увидеть, соответствует ли прошедший интервал времени ожидания, если нет, то вы, вероятно, провели некоторое время в режиме ожидания.