AUTOMATA.SALE Системы привлечения заказов
Связаться

Все приложения для эндоскопа — с рекламой и подписками. Я сделал своё с помощью ИИ и отдаю бесплатно

Евгений Урядов

Все приложения для эндоскопа — с рекламой и подписками. Я сделал своё с помощью ИИ и отдаю бесплатно

Эндоскоп стоит копейки: камера на гибком щупе, 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-эндоскоп — это практически все недорогие щупы с маркетплейсов.

  1. Скачать APK: automata.sale/files/EndoscopeCam-1.5.apk — около 1,5 МБ.
  2. Открыть и разрешить установку из неизвестных источников.
  3. Воткнуть эндоскоп (OTG-переходник или напрямую в USB-C).
  4. Приложение запустится и попросит доступ к камере, затем к USB — разрешить оба пункта. Запрос камеры — это правило Android для USB-видеоустройств, а не слежка: утечь некуда, интернет-разрешения у приложения нет.
  5. Картинка появится сама. Кнопка затвора — фото, красная кнопка — видео.

Если картинка чёрная — откройте шестерёнку и выберите другое разрешение: дешёвые сенсоры часто врут о своих режимах. Если устройство не находится — обычно виноват 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 можно скачать напрямую.

📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale

ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058
Работаем по России, Беларуси и Казахстану