Приложение для отслеживания местоположения устройства с возможностью работы в фоновом режиме.
- ✅ Отслеживание местоположения в реальном времени
- ✅ Работа в фоновом режиме через Foreground Service
- ✅ Локальное хранение данных в Room Database
- ✅ Автоматическая отправка данных на сервер при наличии связи
- ✅ Очередь для отправки данных при отсутствии связи
- ✅ Автозапуск приложения после перезагрузки устройства
- ✅ Простой и интуитивный интерфейс
Приложение построено с использованием современных Android технологий:
- Jetpack Compose - для UI
- Hilt - для внедрения зависимостей
- Room - для локального хранения данных
- Retrofit - для сетевых запросов
- WorkManager - для фоновой синхронизации
- Google Play Services Location - для получения местоположения
- MVVM - архитектурный паттерн
app/src/main/java/com/spchief87/childtracker/
├── data/
│ ├── api/ # API интерфейсы и конфигурация
│ ├── database/ # Room Database и DAO
│ ├── model/ # Модели данных
│ └── repository/ # Repository для управления данными
├── di/ # Модули Hilt для внедрения зависимостей
├── receiver/ # BroadcastReceiver для автозапуска
├── service/ # Foreground Service для отслеживания
├── ui/
│ ├── theme/ # Тема приложения
│ └── viewmodel/ # ViewModel для UI
├── worker/ # WorkManager для синхронизации
├── ChildTrackerApplication.kt
└── MainActivity.kt
Для работы с сервером необходимо:
- Обновить URL в
ApiModule.kt:
private const val BASE_URL = "https://your-server.com/api/"-
Сервер должен поддерживать следующие эндпоинты:
POST /location- для отправки одного местоположенияPOST /locations/batch- для отправки пакета местоположений
-
Формат данных, отправляемых на сервер:
{
"deviceId": "уникальный_идентификатор_устройства",
"latitude": 55.7558,
"longitude": 37.6176,
"accuracy": 10.0,
"altitude": 150.5,
"speed": 5.2,
"bearing": 45.0,
"timestamp": 1640995200000,
"provider": "gps"
}Приложение запрашивает следующие разрешения:
ACCESS_FINE_LOCATION- точное местоположениеACCESS_COARSE_LOCATION- приблизительное местоположениеACCESS_BACKGROUND_LOCATION- местоположение в фоне (Android 10+)INTERNET- доступ к интернетуACCESS_NETWORK_STATE- проверка состояния сетиRECEIVE_BOOT_COMPLETED- автозапуск после перезагрузкиFOREGROUND_SERVICE- работа в фонеFOREGROUND_SERVICE_LOCATION- отслеживание местоположения в фоне
- Запустите приложение
- Предоставьте необходимые разрешения
- Нажмите "Начать отслеживание"
- Приложение будет отслеживать местоположение и сохранять данные локально
- При наличии интернета данные автоматически отправляются на сервер
- При отсутствии связи данные сохраняются в очереди и отправляются позже
- Данные сохраняются локально даже при отсутствии связи
- Автоматическая очистка старых отправленных записей (через 7 дней)
- Периодическая синхронизация каждые 15 минут
- Уведомление в статус-баре при активном отслеживании
- Автозапуск после перезагрузки устройства (если отслеживание было включено)
- Уникальный идентификатор устройства для каждого запроса
- Возможность просмотра deviceId в интерфейсе приложения
Для полной функциональности рекомендуется:
- Добавить аутентификацию пользователя
- Реализовать шифрование данных
- Добавить настройки точности и частоты отслеживания
- Реализовать просмотр истории местоположений
- Добавить уведомления о важных событиях