A simple Android music player built for my 3-year-old daughter. Inspired by the Yoto Mini player — big buttons, no distractions, hard to escape.
- Scans for music automatically — finds all audio files in any folder named
Ceceon the device. Sub-folders are used as album names (e.g.Cece/Frozen/→ album "Frozen") - Pixel art track icons — if a
.pngwith the same name as the audio file exists alongside it, it's shown in the center using nearest-neighbor scaling to keep the pixel art sharp - Three big buttons — previous track, play/pause, next track. Tapping the track icon also toggles play/pause
- Battery indicator — top-left corner shows device battery level
- Bluetooth headphones indicator — top-right corner shows a headphones icon with the headphones battery level when connected; volume is automatically capped at 50% to protect little ears
- Google Cast support — tap the Cast button (top-right) to stream audio to a Google Nest Mini or other Cast device on the same WiFi network; prev/next and track icons update in sync; tracks advance automatically when one finishes
- Landscape only — locked to landscape in both orientations
- Hard to exit:
- Back button is disabled
- Navigation bar is hidden (immersive fullscreen)
- Screen pinning (
startLockTask()) locks out the notification shade and system navigation — requires screen pinning to be enabled in Settings first
- Screen stays on while the app is in the foreground
- Playback pauses when the app leaves the foreground
Put audio files on the device under a folder called Cece anywhere in storage (e.g. Music/Cece/). Organise into sub-folders by album:
Music/
Cece/
Frozen/
01 Frozen Heart.mp3
01 Frozen Heart.png ← optional pixel art icon (16×16 recommended)
05 Let It Go.mp3
05 Let It Go.png
Moana/
01 Tulou Tagaloa.mp3
To enable casting, create app/src/main/assets/cast_settings.txt (gitignored) with the name of your Cast device:
name=cece
The app matches any Cast device whose name contains this string (case-insensitive). When a matching device is found on the network, a Cast button appears in the top-right corner. Tap it to connect; tap again to disconnect and resume local playback.
To lock out the notification shade and system navigation, enable screen pinning on the device first:
Settings → Biometrics and security → Screen pinning → On
The app activates pinning automatically on launch. To exit, hold Back and Recents simultaneously.
Requires Android SDK and JDK 17+. Set your SDK path in local.properties:
sdk.dir=/path/to/android-sdk
Then build and install:
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apkTargets Android 10+ (API 29).

