Приложение для автоматической смены обоев по расписанию на Android.
Расписания — создавайте неограниченное количество расписаний смены обоев
Точное время — обои меняются в заданный час и минуту
Гибкие дни повторения:
Каждый день
По будням (Пн–Пт)
Еженедельно (выбранный день недели)
Конкретные дни (любая комбинация дней)
Несколько фото — фотографии меняются поочерёдно при каждом срабатывании
Редактор обрезки — встроенный кроппер с сеткой, перетаскиванием углов и возможностью пропустить обрезку
Включение/выключение — каждое расписание можно отдельно включить или отключить без удаления
Работа после перезагрузки — расписания восстанавливаются автоматически
Android 7.0 (API 24) и выше
Разрешение на установку обоев
Разрешение на точные будильники (Android 12+, запрашивается при первом запуске)
Установка в Android Studio
Распакуйте архив WallpaperScheduler_v2.zip в папку app/ вашего проекта
В libs.versions.toml добавьте Gson (если не добавлен):
[versions ]
gson = " 2.10.1"
[libraries ]
gson = { group = " com.google.code.gson" , name = " gson" , version.ref = " gson" }
Убедитесь, что в build.gradle.kts (корневой) подключён только плагин AGP:
plugins {
alias(libs.plugins.android.application) apply false
}
Нажмите Sync Project with Gradle Files
Запустите на устройстве или эмуляторе
app/
├── src/main/
│ ├── java/com/example/wallpaperapp/
│ │ ├── MainActivity.kt # Главный экран со списком расписаний
│ │ ├── AddScheduleActivity.kt # Создание и редактирование расписания
│ │ ├── CropActivity.kt # Экран обрезки фотографии
│ │ ├── CropImageView.kt # Кастомный View-кроппер
│ │ ├── WallpaperSchedule.kt # Модель данных расписания
│ │ ├── ScheduleRepository.kt # Сохранение расписаний (SharedPreferences + Gson)
│ │ ├── ScheduleManager.kt # Управление AlarmManager
│ │ ├── WallpaperReceiver.kt # BroadcastReceiver — смена обоев
│ │ ├── BootReceiver.kt # Восстановление после перезагрузки
│ │ ├── ScheduleAdapter.kt # RecyclerView адаптер списка расписаний
│ │ └── PhotoAdapter.kt # RecyclerView адаптер фотографий
│ ├── res/
│ │ ├── layout/
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_add_schedule.xml
│ │ │ ├── activity_crop.xml
│ │ │ ├── item_schedule.xml
│ │ │ └── item_photo.xml
│ │ └── values/
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ └── AndroidManifest.xml
└── build.gradle
Пользователь создаёт расписание: указывает название, время, дни недели и добавляет фотографии
При сохранении ScheduleManager регистрирует точный будильник через AlarmManager
В назначенное время срабатывает WallpaperReceiver, который:
Берёт текущее фото из списка по индексу
Устанавливает его как обои (рабочий стол + экран блокировки)
Увеличивает индекс для следующего срабатывания
Планирует следующий будильник
BootReceiver восстанавливает все активные расписания после перезагрузки устройства
Разрешение
Назначение
SET_WALLPAPER
Установка обоев
READ_MEDIA_IMAGES / READ_EXTERNAL_STORAGE
Доступ к галерее
RECEIVE_BOOT_COMPLETED
Восстановление после перезагрузки
SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM
Точное срабатывание по времени
WAKE_LOCK
Пробуждение устройства для смены обоев
Версия
Изменения
2.0
Расписания, кроппер, несколько фото, дни недели
1.0
Базовая ручная смена обоев