Все приложения для эндоскопа — с рекламой и подписками. Я сделал своё с помощью ИИ и отдаю бесплатно
Эндоскоп стоит копейки: камера на гибком щупе, USB-штекер, работает с любым телефоном. С железом всё хорошо. С софтом — позор: каждое приложение, которое я открывал, хотело либо мои деньги, либо моё внимание, либо моё терпение. Надоело раньше, чем я увидел рабочую картинку. Поэтому я сделал то, чем занимаюсь профессионально: посадил рядом ИИ-агента, и мы собрали приложение, которое магазины отказываются продавать по-человечески.
Каждое приложение, которое я попробовал, — ловушка
Схема всегда одна. Бесплатная загрузка, потом реклама каждые десять секунд. Подписка за «сохранить фото». Лимит записи в тридцать секунд, который снимается покупкой «Pro». Водяной знак, выжженный в кадр. Одному приложению удалось совместить всё сразу. Железо за пятьсот рублей, а софт сдаёт его тебе в аренду помесячно. Инструмент для осмотра не должен быть витриной рекламной сети.
Что я поручил ИИ-агенту
Техзадание уложилось в один абзац: живой предпросмотр с USB-эндоскопа, фото, запись видео без лимита времени, выбор разрешения, никакой рекламы, никакого трекинга и никакого доступа в интернет вообще. Агент (ZCode с моделью GLM) выбрал стек, нашёл поддерживаемую open-source UVC-библиотеку, написал всё на Java и в тот же вечер отдал мне устанавливаемый APK. Получился EndoscopeCam — полтора мегабайта, который умеет ровно это:
- полноэкранный предпросмотр с правильными пропорциями;
- фото в
Pictures/Endoscope, MP4-видео (H.264) вMovies/Endoscope— без лимитов; - выбор разрешения из тех, что реально поддерживает камера (на моей — от VGA до 1080p);
- автоматический выбор формата YUYV/MJPEG — именно поэтому дешёвые эндоскопы вообще заводятся;
- автозапуск при подключении эндоскопа;
- ноль рекламы, ноль аналитики, и у приложения даже нет разрешения INTERNET — физически не может ничего отправить.
Один вечер на сборку, неделя на понять, почему молчит
А теперь честная часть, ради которой и стоит читать. Первая сборка открыла камеру на тестовом устройстве, но тихо умерла на моём Xiaomi (HyperOS 3, Android 16): приложение работает, эндоскоп определяется, а диалог доступа не появляется никогда. Ни ошибки, ни краша — просто тост про отказ.
Мы несколько дней гонялись за красными herrингами: всплывающие окна MIUI, «поверх других окон», холодные перезагрузки. Правда показал adb logcat: система отвечала на запрос разрешения за двадцать три миллисекунды — раньше, чем любой диалог успел бы показаться.
15:42:52.858 requestPermission: sent, waiting for system dialog
15:42:52.866 permission broadcast: granted=false dtMs=23
Двадцать три миллисекунды — это не человек передумал. Это код. Чтение исходников Android расставило всё по местам: начиная с Android 13 любое USB-устройство, умеющее видео, считается камерой, и если у приложения нет runtime-разрешения CAMERA, система отказывает в доступе к USB немедленно и молча. Комментарий в AOSP дословный: «If the app doesn’t have camera permission do not request permission to the USB device».
Одна строка в манифесте и один диалог запроса — и всё заработало. Урок, который я переучиваю снова и снова: ИИ пишет рабочий код быстрее, чем реальное железо говорит правду. Код был готов за вечер; правду про конкретный телефон пришлось неделю добывать совместной отладкой, логами и чтением исходников. Ни агент по отдельности, ни я по отдельности не разгадали бы это так быстро.
Установить себе
Требования: Android 7.0+, телефон с USB OTG и любой UVC-эндоскоп — это практически все недорогие щупы с маркетплейсов.
- Скачать APK: automata.sale/files/EndoscopeCam-1.5.apk — около 1,5 МБ.
- Открыть и разрешить установку из неизвестных источников.
- Воткнуть эндоскоп (OTG-переходник или напрямую в USB-C).
- Приложение запустится и попросит доступ к камере, затем к USB — разрешить оба пункта. Запрос камеры — это правило Android для USB-видеоустройств, а не слежка: утечь некуда, интернет-разрешения у приложения нет.
- Картинка появится сама. Кнопка затвора — фото, красная кнопка — видео.
Если картинка чёрная — откройте шестерёнку и выберите другое разрешение: дешёвые сенсоры часто врут о своих режимах. Если устройство не находится — обычно виноват OTG-кабель.
Что под капотом
Чистая Java, без фреймворков. UVC-обвязка — поддерживаемая библиотека org.uvccamera (Apache 2.0, готовые нативные библиотеки), фото — самописный конвертер NV21, видео — MediaCodec H.264 в MediaMuxer, сохранение через MediaStore. Аналитических SDK в бинарнике нет, потому что им не с чем разговаривать.
Что дальше
Выпуск в Google Play запланирован — не хватает только оформления сторовой карточки. Исходники выложу, когда приведу в приличный вид код со всеми шрамами отладки. Если будете пользоваться со своим щупом — напишите, что завелось, а что нет: базе разрешений не помешают реальные данные.
📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale
ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058 Работаем по России, Беларуси и Казахстану
Частые вопросы
Почему приложениям для эндоскопа нужно разрешение «Камера»?
С Android 13 любое USB-устройство, умеющее снимать видео, считается камерой. Без runtime-разрешения CAMERA система молча отклоняет доступ к USB — без диалога и объяснений. Поэтому любое честное эндоскоп-приложение его спрашивает.
С какими эндоскопами работает?
С любыми UVC-камерами — а это практически все недорогие эндоскопы с маркетплейсов. Подключение через OTG-переходник или напрямую в USB-C. Проверено на 2-мегапиксельной «HD Camera» на чипе Realtek.
Приложению нужен интернет?
Нет. У приложения даже нет разрешения INTERNET — оно физически не может ничего отправить. Фото сохраняются в Pictures/Endoscope, видео в Movies/Endoscope.
Есть ли лимит на запись видео?
Нет. Видео кодируется в MP4 (H.264) на устройстве столько, сколько вы записываете. Никаких водяных знаков, триалов и подписок.
Почему бесплатно?
Это инструмент, который я сделал для себя и решил поделиться. Выпуск в Google Play запланирован; пока APK можно скачать напрямую.
Работаю удалённо — цены и условия для вашего города: