Начну с того, что развиваю два андроид приложения ps402d (служба печати) и виртуальный принтер ( <br/> <a href="https://play.google.com/store/apps/details?id=ru.a402d.ippprinter" rel="nofollow">https://play.google.com/store/apps/details?id=ru.a...</a> ). Глубоко это в теме или нет решать Вам. <br/> <br/> Сетевые принтеры можно разделить на те, что с IPP и более простые 9100. ( остальные варианты можно отбросить) <br/> через директ можете считать, что статус узнать нельзя. Как вы пишите, тут нужен двух сторонний обмен данными, но вот формат такого ответа не стандартизирован. Может как один так и 3 байта. И другие придумки вендоров. <br/> <br/> А вот IPP вещь приятная и задокументированная по RFC. <br/> <br/> Теперь на счет оперативности статусов. Не дергают принтеры постоянно !!!! <br/> Первый уровень пассивное прослушивание mDNS. При необходимости явный запрос сетевого ресолва запомненного ранее использованного принтера. <br/> Из днс ответа делаются два вывода : принтер онлайн / принтер офллайн. <br/> <br/> Следующий уровень. <br/> Пользователь определился на какой принтер будет печатать. Можно тут уже запустить паралельный тред с опросом состояния принтера (трекинг). Из такого ответа уже получается полноценный статус принтера: <br/> простаиваю печатаю, кончается тонер, открыта крышка, подавился бумагой. <br/> Но такое постоянное замучивание принтера имхо излишне. <br/> <br/> Часто перед самой печатью, принтеру посылается команда "проверь задание" (Validate-job). <br/> Но опять же по моему, тут хватило бы просто запросить статус принтера (один раз вместо постояного потока) <br/> <br/> Отсылается задание на печать. <br/> Дальше логичнее трекать его состояние работы, но можно и через смену состояний принтера. (занят - простой) <br/> <br/> На этом статусы принтера спулеру печати больше не интересны. <br/> <br/> Пойманую ошибку автоматом ресетить тоже нет никакого резона, ее наоборот надо пользователю показать.