Android App
Android App
Section titled “Android App”OpenClaw provides a native Android application that transforms your Android device into a powerful AI gateway node, enabling seamless interaction with OpenClaw from anywhere while maintaining Android’s security and privacy features.
Installation
Section titled “Installation”Google Play Store
Section titled “Google Play Store”-
Download from Google Play Store:
- Search “OpenClaw” in Play Store
- Tap “Install” to download and install
- Requires Android 7.0 (API level 24) or later
-
Permissions Required:
- Camera (for QR code scanning)
- Microphone (for voice input)
- Storage (for file sharing)
- Notifications (for message alerts)
- Network (for gateway communication)
Alternative Installation
Section titled “Alternative Installation”F-Droid
Section titled “F-Droid”# Add F-Droid repository# Download from f-droid.org# Search and install OpenClawDirect APK
Section titled “Direct APK”# Download APK from GitHub releases# Enable "Unknown sources" in settings# Install APK manuallyAurora Store
Section titled “Aurora Store”- Alternative to Google Play Store
- Privacy-focused app store
- OpenClaw available on Aurora Store
First Launch Setup
Section titled “First Launch Setup”Initial Configuration
Section titled “Initial Configuration”- Launch OpenClaw from your app drawer
- Grant permissions when prompted by Android
- Choose setup mode:
- Connect to gateway: Join existing OpenClaw setup
- Cloud mode: Use OpenClaw cloud services
- Offline mode: Limited offline functionality
Gateway Connection
Section titled “Gateway Connection”QR Code Pairing
Section titled “QR Code Pairing”-
Generate pairing code on gateway:
Terminal window openclaw pairing generate -
Scan QR code in Android app:
- Tap “Scan QR Code”
- Grant camera permission
- Point camera at QR code
- Confirm connection
Manual Connection
Section titled “Manual Connection”-
Enter gateway details:
- IP address or hostname
- Port number (default: 18789)
- Pairing code
- Connection name
-
Test connection:
- Verify network connectivity
- Test message exchange
- Save connection profile
Network Configuration
Section titled “Network Configuration”Wi-Fi Networks
Section titled “Wi-Fi Networks”- Same network: Device and gateway on same Wi-Fi
- Multiple networks: Save multiple gateway profiles
- Auto-connect: Connect to known gateways automatically
Remote Access
Section titled “Remote Access”- VPN connection: Connect via VPN for remote access
- Tailscale: Use Tailscale mesh network
- Dynamic DNS: Use DDNS for remote gateways
App Interface
Section titled “App Interface”Navigation
Section titled “Navigation”The OpenClaw Android app uses Material Design navigation:
Bottom Navigation
Section titled “Bottom Navigation”- Chat: Main conversation interface
- Channels: Messaging platform management
- Status: Gateway and system status
- Settings: App configuration and preferences
Navigation Drawer
Section titled “Navigation Drawer”- Quick access to all sections
- Account information
- Help and support
- App information
Chat Interface
Section titled “Chat Interface”Message Composition
Section titled “Message Composition”- Text input: Standard Android keyboard with autocomplete
- Voice input: Tap microphone for voice-to-text
- Camera integration: Take photos or videos
- Gallery access: Select existing media
- File picker: Access device storage
- Location sharing: Share GPS coordinates
Message Features
Section titled “Message Features”- Rich text formatting: Bold, italic, code blocks
- Mentions: @mention contacts and channels
- Reactions: React with emojis
- Quotes: Reply to specific messages
- Forward: Share between conversations
- Edit: Edit sent messages
- Delete: Remove messages
AI Response Display
Section titled “AI Response Display”- Streaming responses: Real-time text streaming
- Code highlighting: Syntax highlighting for code
- Markdown rendering: Rich text formatting
- Interactive elements: Clickable links and buttons
- Voice synthesis: Text-to-speech for responses
Features
Section titled “Features”Android Integration
Section titled “Android Integration”Google Assistant Integration
Section titled “Google Assistant Integration”- Voice commands: “Hey Google, ask OpenClaw…”
- App Actions: Launch OpenClaw via Assistant
- Shortcuts integration: Create Assistant shortcuts
- Voice synthesis: Assistant can read responses
Notification System
Section titled “Notification System”- Rich notifications: Expandable notifications with actions
- Notification channels: Separate channels per messaging platform
- Do Not Disturb: Respect Android DND settings
- Notification grouping: Group related notifications
- Quick reply: Reply directly from notifications
Widget Support
Section titled “Widget Support”- Home screen widgets: Status and quick actions
- Lock screen widgets: Android 12+ lock screen support
- Resizable widgets: Adaptive widget sizes
- Widget themes: Light/dark theme support
System Integration
Section titled “System Integration”- Share menu: Share content to OpenClaw from any app
- File provider: Access OpenClaw files from other apps
- Content provider: Share OpenClaw data with other apps
- Intent handling: Handle custom intents from other apps
Advanced Features
Section titled “Advanced Features”Canvas Mode
Section titled “Canvas Mode”Android device can act as Canvas surface:
{ "canvas": { "enabled": true, "resolution": "1920x1080", "refreshRate": 60, "touchEnabled": true, "gestureSupport": ["tap", "swipe", "pinch", "scroll"], "multiTouch": true, "pressureSensitivity": true }}Background Processing
Section titled “Background Processing”- Foreground service: Maintain connection when app is backgrounded
- WorkManager: Schedule background tasks
- JobScheduler: Optimize battery usage
- AlarmManager: Schedule periodic tasks
Offline Support
Section titled “Offline Support”- Offline queue: Queue messages when offline
- Local cache: Cache responses for offline access
- Sync when online: Automatic synchronization
- Conflict resolution: Handle sync conflicts
Multi-Window Support
Section titled “Multi-Window Support”- Split screen: Use alongside other apps
- Picture-in-picture: Video chat in floating window
- Freeform windows: Desktop-like window management
- App pairs: Launch two apps together
Configuration
Section titled “Configuration”Connection Settings
Section titled “Connection Settings”Gateway Profiles
Section titled “Gateway Profiles”{ "profiles": [ { "name": "Home Gateway", "host": "192.168.1.100", "port": 18789, "useTLS": false, "token": "pairing-token", "autoConnect": true, "priority": 1 }, { "name": "Office Gateway", "host": "office.example.com", "port": 18789, "useTLS": true, "token": "office-token", "autoConnect": false, "priority": 2 } ]}Network Settings
Section titled “Network Settings”- Wi-Fi preferences: Preferred networks for connection
- Mobile data: Allow cellular connections
- Roaming: Control behavior when roaming
- VPN requirements: Require VPN for certain connections
- DNS settings: Custom DNS configuration
Notification Settings
Section titled “Notification Settings”Notification Channels
Section titled “Notification Channels”- Messages: New message notifications
- Gateway status: Connection status changes
- Errors: Error and warning notifications
- System: System-level notifications
Alert Configuration
Section titled “Alert Configuration”- Sound: Custom notification sounds per channel
- Vibration: Custom vibration patterns
- LED: Notification LED color (if supported)
- Pop-up: Heads-up notifications
- Lock screen: Show on lock screen
Security Settings
Section titled “Security Settings”Authentication
Section titled “Authentication”- Biometric lock: Fingerprint/face unlock
- PIN protection: Custom PIN code
- Pattern lock: Android pattern unlock
- Auto-lock: Automatic app locking
- Session timeout: Automatic logout
Data Protection
Section titled “Data Protection”- Local encryption: Encrypt stored data with Android Keystore
- End-to-end encryption: Secure communication with gateway
- Certificate pinning: Prevent MITM attacks
- Secure storage: Use Android EncryptedSharedPreferences
Daily Operations
Section titled “Daily Operations”Starting Conversations
Section titled “Starting Conversations”- Open OpenClaw app
- Tap compose button or use voice command
- Select channel and recipient
- Compose message using text or voice
- Send and await AI response
Managing Multiple Channels
Section titled “Managing Multiple Channels”- Channel switching: Swipe between channels
- Unified inbox: View all messages in one place
- Channel filtering: Filter by channel or contact
- Cross-channel operations: Forward between channels
Voice Interactions
Section titled “Voice Interactions”- Voice input: Tap microphone for voice messages
- Voice commands: “Send message to contact”
- Voice responses: Listen to AI responses
- Hands-free operation: Complete voice control
Advanced Usage
Section titled “Advanced Usage”Canvas Interactions
Section titled “Canvas Interactions”When acting as Canvas surface:
- Enable Canvas mode in settings
- Gateway displays content on Android device
- Touch interactions: Full touch gesture support
- Multi-touch: Multiple simultaneous touch points
- Pressure sensitivity: Variable pressure input (if supported)
Multi-Device Sync
Section titled “Multi-Device Sync”- Account sync: Sync across multiple Android devices
- Cloud backup: Backup settings and preferences
- Device handoff: Start conversation on one device, continue on another
- Shared preferences: Sync app settings
Automation
Section titled “Automation”Tasker Integration
Section titled “Tasker Integration”<!-- Tasker task to send message --><Task> <Action> <Code>openclaw.sendMessage("whatsapp", "+1234567890", "Hello from Tasker")</Code> </Action></Task>MacroDroid Support
Section titled “MacroDroid Support”- Triggers: Message received, gateway status change
- Actions: Send message, change settings, start app
- Conditions: Network status, time of day, location
Home Assistant Integration
Section titled “Home Assistant Integration”# Home Assistant automationautomation: - alias: "OpenClaw Message" trigger: - platform: event event_type: openclaw_message_received action: - service: notify.mobile_app data: message: "New message from OpenClaw"Troubleshooting
Section titled “Troubleshooting”Connection Issues
Section titled “Connection Issues”Cannot Connect to Gateway
Section titled “Cannot Connect to Gateway”# Check gateway statusopenclaw gateway status
# Test network connectivityping 192.168.1.100
# Check pairing codeopenclaw pairing status
# Verify Android network settings# Settings → Network & Internet → Wi-FiIntermittent Connection
Section titled “Intermittent Connection”- Check Wi-Fi signal strength
- Verify mobile data stability
- Restart Android app
- Re-pair with gateway
- Check battery optimization settings
Notification Issues
Section titled “Notification Issues”Not Receiving Notifications
Section titled “Not Receiving Notifications”-
Check notification settings:
- Settings → Apps → OpenClaw → Notifications
- Ensure all notification channels are enabled
-
Check Do Not Disturb:
- Settings → Sound & Vibration → Do Not Disturb
- Ensure OpenClaw is allowed
-
Check battery optimization:
- Settings → Battery → Battery optimization
- Exclude OpenClaw from optimization
Notification Delays
Section titled “Notification Delays”- Check network connection quality
- Verify gateway is responsive
- Restart both gateway and app
- Check notification delivery settings
Performance Issues
Section titled “Performance Issues”Slow Response Times
Section titled “Slow Response Times”- Check network quality and speed
- Close background apps
- Clear app cache
- Check available storage space
- Monitor battery usage
App Crashes or ANRs
Section titled “App Crashes or ANRs”-
Force stop and restart:
- Settings → Apps → OpenClaw → Force stop
- Clear app data if necessary
- Reinstall app
-
Check crash logs:
- Use Android Studio Logcat
- Enable debug mode in app
- Report crash with logs
Development
Section titled “Development”API Access
Section titled “API Access”The Android app provides internal APIs:
// Send message programmaticallyimport com.openclaw.android.sdk.OpenClawClient
val client = OpenClawClient(context)client.sendMessage( channel = Channel.WHATSAPP, target = "+1234567890", message = "Hello from Android") { result -> when (result) { is Result.Success -> Log.d("OpenClaw", "Message sent") is Result.Error -> Log.e("OpenClaw", "Error: ${result.exception}") }}Widget Development
Section titled “Widget Development”Create custom app widgets:
class OpenClawWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { appWidgetIds.forEach { appWidgetId -> val views = RemoteViews(context.packageName, R.layout.widget_layout)
// Update widget with gateway status updateWidget(context, views, appWidgetId)
appWidgetManager.updateAppWidget(appWidgetId, views) } }}Background Services
Section titled “Background Services”Implement foreground service for background operations:
class OpenClawService : Service() { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { startForeground(NOTIFICATION_ID, createNotification())
// Maintain gateway connection maintainConnection()
return START_STICKY }
private fun createNotification(): Notification { return NotificationCompat.Builder(this, CHANNEL_ID) .setContentTitle("OpenClaw Gateway") .setContentText("Connected to gateway") .setSmallIcon(R.drawable.ic_notification) .build() }}Security
Section titled “Security”Data Protection
Section titled “Data Protection”Android Keystore Integration
Section titled “Android Keystore Integration”// Secure key generation and storageval keyGenerator = KeyGenerator.getInstance( KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore")keyGenerator.init( KeyGenParameterSpec.Builder( "openclaw_key", KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT ) .setBlockModes(KeyProperties.BLOCK_MODE_GCM) .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) .setUserAuthenticationRequired(true) .setUserAuthenticationValidityDurationSeconds(30) .build())Network Security Configuration
Section titled “Network Security Configuration”<?xml version="1.0" encoding="utf-8"?><network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">your-gateway.com</domain> </domain-config> <base-config cleartextTrafficPermitted="false"> <trust-anchors> <certificates src="system"/> </trust-anchors> </base-config></network-security-config>Privacy Features
Section titled “Privacy Features”Scoped Storage
Section titled “Scoped Storage”- Modern storage: Use Android scoped storage
- Permission model: Request minimal permissions
- Data isolation: Isolate app data from other apps
- Backup encryption: Encrypt backup data
Biometric Authentication
Section titled “Biometric Authentication”// Biometric authenticationval promptInfo = BiometricPrompt.PromptInfo.Builder() .setTitle("OpenClaw Authentication") .setSubtitle("Authenticate to access OpenClaw") .setNegativeButtonText("Cancel") .build()
val biometricPrompt = BiometricPrompt( fragmentActivity, ContextCompat.getMainExecutor(fragmentActivity), object : BiometricPrompt.AuthenticationCallback() { override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { // Authentication successful } })
biometricPrompt.authenticate(promptInfo)Best Practices
Section titled “Best Practices”Battery Optimization
Section titled “Battery Optimization”- Efficient networking: Batch network requests
- Background limits: Respect Android background limits
- Doze mode: Handle device Doze mode properly
- Adaptive battery: Work with Android adaptive battery
Memory Management
Section titled “Memory Management”- Memory leaks: Prevent memory leaks with proper lifecycle management
- Image optimization: Optimize image loading and caching
- Database optimization: Efficient database operations
- Garbage collection: Minimize object allocations
Network Efficiency
Section titled “Network Efficiency”- Compression: Compress data when possible
- Caching: Implement intelligent caching
- Offline support: Handle offline scenarios gracefully
- Network awareness: Adapt to network conditions
Integration
Section titled “Integration”Android Ecosystem
Section titled “Android Ecosystem”Files App Integration
Section titled “Files App Integration”- Storage Access Framework: Access files through SAF
- Content providers: Share content with other apps
- Document provider: Provide OpenClaw documents to other apps
Calendar Integration
Section titled “Calendar Integration”- Calendar provider: Read/write calendar events
- Event creation: Create events from conversations
- Reminder integration: Set reminders from messages
Contacts Integration
Section titled “Contacts Integration”- Contacts provider: Access device contacts
- Contact sync: Sync OpenClaw contacts
- Caller ID: Identify incoming calls
Third-party Apps
Section titled “Third-party Apps”Tasker Integration
Section titled “Tasker Integration”- Plugin development: Create Tasker plugins
- Intent handling: Handle Tasker intents
- Variable sharing: Share variables with Tasker
Home Assistant
Section titled “Home Assistant”- Android app integration: Integrate with Home Assistant app
- Device tracking: Track device location
- Sensor data: Provide sensor data to Home Assistant
Support
Section titled “Support”Getting Help
Section titled “Getting Help”- In-app Help: Help → OpenClaw Help
- Contact Support: Settings → Contact Support
- Community Forum: discuss.openclaw.dev
- Documentation: docs.openclaw.dev
Feedback
Section titled “Feedback”- Feature Requests: Help → Send Feedback
- Bug Reports: Help → Report Bug
- Beta Testing: Join beta testing program
- Community: discord.gg/openclaw
Debug Information
Section titled “Debug Information”Generate debug information for support:
// Collect debug informationval debugInfo = DebugInfoCollector.collect(context)// Includes:// - App version and build info// - Device information// - Network configuration// - Recent logs// - Crash reportsThe OpenClaw Android app brings powerful AI capabilities to your Android device with deep integration into the Android ecosystem, enterprise-grade security, and seamless multi-platform messaging support. 🤖