Android-приложение для автоматической детекции лиц через фронтальную камеру и отправки снимков в Telegram.
- Детекция лиц через ML Kit (standalone)
- Фоновая работа как foreground service
- Отправка фото в Telegram через Bot API
- Throttling: не чаще одного уведомления в 30 секунд
- Автоматическая конвертация YUV → JPEG
com.observerwatch/
├── MainActivity.kt — Permission gate, запуск сервиса
├── SettingsActivity.kt — Ввод Telegram credentials
├── config/
│ └── AppConfig.kt — SharedPreferences (токен, chat ID, cooldown)
├── domain/
│ ├── camera/
│ │ ├── CameraFrameSource.kt — Camera2 API lifecycle
│ │ └── ImageConverter.kt — YUV → JPEG
│ ├── detection/
│ │ └── FaceDetector.kt — ML Kit face detection
│ └── notification/
│ └── TelegramSender.kt — Telegram Bot API (sendPhoto)
└── service/
└── ObserverForegroundService.kt — Foreground service, оркестрация
- Создать бота через @BotFather
- Получить токен бота
- Получить chat ID (отправить сообщение боту, затем проверить
https://api.telegram.org/bot<TOKEN>/getUpdates)
При первом запуске приложение откроет экран настроек, где нужно ввести Bot Token и Chat ID.
./gradlew assembleDebug./gradlew installDebug./gradlew test- Android 8.0+ (API 26)
- Фронтальная камера
- Доступ в интернет
MainActivityпроверяет наличие Telegram credentials → если нет, открываетSettingsActivity- Запрашивает разрешение на камеру, запускает
ObserverForegroundService CameraFrameSourceзахватывает кадры через Camera2 APIFaceDetector(ML Kit) анализирует каждый кадр- При обнаружении лица
ImageConverterсоздаёт JPEG TelegramSenderотправляет фото в Telegram (не чаще раз в 30 сек)
MIT