Files
EverShelf/docs/wiki/Android-Kiosk.md
T
dadaloop82 da4bd635db feat: professional repo cleanup + community infrastructure
- README: remove Recent Updates section, clean roadmap (pending only),
  replace Screenshots with demo link, add 6 new badges (stars, last
  commit, contributors, discussions, CI), invite GIF contributions
- CHANGELOG: translate all Italian entries to English, add v1.7.13
  (DB fresh-install crash fix)
- database.php: add missing 'undone' column to transactions schema;
  wrap ALTER TABLE calls in try/catch to prevent race-condition errors
  on concurrent first requests
- Wiki: Android-Kiosk v1.5.0 → v1.6.0, Step 5 rewritten (BLE scan,
  no external APK), removed gateway troubleshooting section
- Wiki: Scale-Gateway promoted to deprecated with redirect banner
- Wiki: Home What's New updated to v1.7.12 / v1.7.13
- Wiki: Features.md, kiosk README Italian UI strings translated
- .github: add bug_report.yml, feature_request.yml issue templates,
  config.yml (blank issues off, links to FAQ/Discussions/Security),
  PULL_REQUEST_TEMPLATE.md with checklist
- .github: FUNDING.yml (Ko-fi), dependabot.yml (monthly action updates)
- .github/workflows/security.yml: Trivy docker + fs scan, SARIF upload
- .github/workflows/build-scale-gateway.yml: disabled (deprecated)
- SECURITY.md: responsible disclosure policy, supported versions, scope
- CODE_OF_CONDUCT.md: Contributor Covenant 2.1
- Settings UI: About section with version display, Report Bug button,
  Changelog and GitHub links; reportBugManual() + _loadAboutSection()
- Translations: added 'about' key group (9 keys × 3 languages)
2026-05-16 06:02:18 +00:00

4.4 KiB

📺 Android Kiosk App

The EverShelf Kiosk app turns any Android tablet into a dedicated, locked-down kitchen display running EverShelf full-screen.


Download

⬇ Download latest APK

Current version: v1.6.0 — requires Android 7.0+


What it does

  • Displays the EverShelf web app in a full-screen WebView (no browser chrome)
  • Locks the screen with Android's startLockTask — home, recents, and back buttons are blocked
  • Runs the built-in BLE scale gateway as an integrated foreground service — no external app required
  • Provides a native TTS bridge so Cooking Mode reads steps aloud via Android TextToSpeech
  • Auto-detects your EverShelf server on the LAN with a smart discovery scanner
  • Reports errors and install failures back to the developer automatically

Setup Wizard (6 steps)

The wizard runs automatically on first launch.

Step 1 — Language

Select the app and web interface language (Italian, English, German).

Step 2 — Welcome

Overview of what the wizard will configure.

Step 3 — Permissions

Grant camera, microphone, and storage permissions needed by the web app.

The button transforms from "Concedi permessi" to " Permessi concessi — Continua →" (green) once all permissions are granted.

Step 4 — Server URL

Enter your EverShelf server URL (e.g. https://192.168.1.100/dispensa).

Or tap "Rileva automaticamente" to let the wizard scan your LAN:

  • 60 parallel threads, TCP pre-check, ports 80/443/8080/8443
  • Only scans your actual Wi-Fi/Ethernet subnet (VPN and cellular interfaces ignored)
  • Real-time feedback as hosts are tested

Step 5 — Smart Scale

If you have a Bluetooth LE smart scale, configure it here:

  1. Tap "Yes, I have a scale" — the app scans for nearby BLE devices
  2. Tap your scale in the list (devices most likely to be scales are marked with )
  3. On selection, the app automatically writes scale_enabled=true and scale_gateway_url=ws://127.0.0.1:8765 to your EverShelf server

The BLE gateway runs as a built-in foreground service — no external APK needed.

Step 6 — Screensaver

Choose whether the screen should go dark after inactivity.

Summary

All done — the web app loads in full-screen kiosk mode.


Exiting Kiosk Mode

Tap the button in the header (top-left). A confirmation dialog appears.


Hard Refresh

Tap the button in the header to clear the WebView cache and reload the latest version of the web app.


Update Notifications

Every 6 hours the app checks GitHub releases. If a newer version is available, a banner appears with a one-tap download and install flow.


Native TTS Bridge

When Cooking Mode reads recipe steps, the kiosk app:

  1. Intercepts the TTS call from the web app via a JavaScript bridge
  2. Uses the Android TextToSpeech engine directly
  3. Falls back to the browser Web Speech API if the bridge is unavailable

No internet connection required for TTS. No extra voice packs to install.


SSL / Self-signed Certificates

The WebView accepts self-signed certificates automatically. No configuration needed for local HTTPS servers.


Troubleshooting

"Server non trovato" during auto-discovery

  • Make sure your tablet and server are on the same Wi-Fi network
  • Ensure the server is not on a VPN-only interface
  • Try entering the URL manually

Screen pinning / back button not working

  • Screen pinning requires the app to be set as Device Owner or the user to confirm the pin prompt
  • Some Android skins (Samsung, Xiaomi) may require additional accessibility permissions

App crashes on startup

  • Force-stop the app, clear its data (Settings → Apps → EverShelf Kiosk → Clear data), and relaunch

Building from Source

cd evershelf-kiosk
./gradlew assembleRelease
# APK: app/build/outputs/apk/release/app-release.apk

Requires Android Studio or JDK 17+ with the Android SDK.


Permissions

Permission Purpose
INTERNET Load the EverShelf web app
CAMERA Barcode scanning and AI photo identification
RECORD_AUDIO Voice input in AI chat
WAKE_LOCK Keep the screen on
REQUEST_INSTALL_PACKAGES Install the Scale Gateway APK
ACCESS_WIFI_STATE LAN auto-discovery
REORDER_TASKS Bring app to foreground after gateway launch