openclaw/apps/android
yishai 3e57ca5d72 Android: brighter menu, always-visible orb, camera & file upload
1. Menu now brighter (0xFF3A3A4A) for better contrast
2. Orb on main page always visible (static when off, pulsing when on)
3. Implemented camera capture (saves to MediaStore, loads as attachment)
4. Implemented file picker (any file type)
5. Attachment type auto-detected (image vs file) based on MIME
2026-01-28 22:14:16 +02:00
..
app Android: brighter menu, always-visible orb, camera & file upload 2026-01-28 22:14:16 +02:00
gradle/wrapper chore(android): update toolchain and deps 2025-12-14 02:37:47 +00:00
.gitignore feat(android): add Compose node app (bridge+canvas+chat+camera) 2025-12-14 01:55:40 +00:00
ASSISTANT-APP-PLAN.md Android: disable VoiceInteractionService for OPPO/ColorOS compatibility 2026-01-28 21:19:25 +02:00
build.gradle.kts chore(android): update toolchain and deps 2025-12-14 02:37:47 +00:00
gradle.properties Android: add Voice Wake (foreground/always) 2025-12-18 02:08:57 +01:00
gradlew Android: add Voice Wake (foreground/always) 2025-12-18 02:08:57 +01:00
gradlew.bat Android: add Voice Wake (foreground/always) 2025-12-18 02:08:57 +01:00
README.md fix: shorten bonjour gateway service type 2026-01-20 15:10:06 +00:00
settings.gradle.kts feat: add prek pre-commit hooks and dependabot (#1720) 2026-01-25 10:53:23 +00:00

Clawdbot Node (Android) (internal)

Modern Android node app: connects to the Gateway WebSocket (_clawdbot-gw._tcp) and exposes Canvas + Chat + Camera.

Notes:

  • The node keeps the connection alive via a foreground service (persistent notification with a Disconnect action).
  • Chat always uses the shared session key main (same session across iOS/macOS/WebChat/Android).
  • Supports modern Android only (minSdk 31, Kotlin + Jetpack Compose).

Open in Android Studio

  • Open the folder apps/android.

Build / Run

cd apps/android
./gradlew :app:assembleDebug
./gradlew :app:installDebug
./gradlew :app:testDebugUnitTest

gradlew auto-detects the Android SDK at ~/Library/Android/sdk (macOS default) if ANDROID_SDK_ROOT / ANDROID_HOME are unset.

Connect / Pair

  1. Start the gateway (on your “master” machine):
pnpm clawdbot gateway --port 18789 --verbose
  1. In the Android app:
  • Open Settings
  • Either select a discovered gateway under Discovered Gateways, or use Advanced → Manual Gateway (host + port).
  1. Approve pairing (on the gateway machine):
clawdbot nodes pending
clawdbot nodes approve <requestId>

More details: docs/platforms/android.md.

Permissions

  • Discovery:
    • Android 13+ (API 33+): NEARBY_WIFI_DEVICES
    • Android 12 and below: ACCESS_FINE_LOCATION (required for NSD scanning)
  • Foreground service notification (Android 13+): POST_NOTIFICATIONS
  • Camera:
    • CAMERA for camera.snap and camera.clip
    • RECORD_AUDIO for camera.clip when includeAudio=true