Overview
Scrcpy for Android provides comprehensive control features to interact with the remote device as if you were using it directly. All control features respect the aspect ratio and resolution of both devices.Touch Control
Touch events are automatically translated from your local device screen coordinates to the remote device coordinates.Single Touch
Basic touch interactions work exactly as you’d expect:- Tap: Touch and release quickly
- Long press: Touch and hold
- Drag: Touch, hold, and move
- Swipe: Quick touch and slide gesture
- Remote device resolution
- Local display dimensions
- Current orientation (portrait/landscape)
- Navigation bar visibility
Multi-Touch Support
The app supports full multi-touch gestures with up to 10 simultaneous touch points:- Pinch to Zoom
- Two-Finger Swipe
- Multi-Finger Gestures
Use two fingers to zoom in/out in supported apps
- Each touch point is tracked independently
- Pointer IDs are preserved across events
- Works in maps, photos, browsers, etc.
Multi-touch events are handled through
MotionEvent.ACTION_POINTER_DOWN and MotionEvent.ACTION_POINTER_UP for middle fingers, while ACTION_DOWN and ACTION_UP handle the first and last fingers.Touch Event Types
The following touch events are supported:| Event Type | Description | Code Reference |
|---|---|---|
| ACTION_DOWN | First finger touches screen | MotionEvent.ACTION_DOWN |
| ACTION_POINTER_DOWN | Additional finger touches | MotionEvent.ACTION_POINTER_DOWN |
| ACTION_MOVE | Any finger moves | MotionEvent.ACTION_MOVE |
| ACTION_POINTER_UP | Middle finger lifts | MotionEvent.ACTION_POINTER_UP |
| ACTION_UP | Last finger lifts | MotionEvent.ACTION_UP |
Hardware Navigation Buttons
When the “Bottom control button” option is enabled, on-screen navigation buttons provide quick access to Android system functions.Available Buttons
Back
Symbol:
<Sends: KEYCODE_BACKReturns to previous screenHome
Symbol:
oSends: KEYCODE_HOMEReturns to home screenApp Switch
Symbol:
=Sends: KEYCODE_APP_SWITCHOpens recent appsNavigation Bar Layout
The navigation bar adapts to device orientation: Portrait Mode:- Positioned at bottom of screen
- Reduces available height by 96 pixels
- Buttons arranged horizontally
- Positioned at right side of screen
- Reduces available width by 96 pixels
- Buttons arranged vertically
The 96-pixel dimension is used because it’s a multiple of 8, which ensures proper video encoding alignment.
Wake/Sleep with Proximity Sensor
Scrcpy for Android includes proximity sensor integration for power management.How It Works
- Cover proximity sensor (usually near the front camera)
- Tap the screen while sensor is covered
- Remote device locks (screen turns off)
- Uncover sensor to wake the device
Accessing Local Navbar
Even in full-screen mode, you can access your local device’s navigation:Swipe Up Gesture
- Swipe up from the very bottom edge of your screen
- Your local navigation bar appears temporarily
- Use your local navigation to switch apps, go home, etc.
- The gesture doesn’t interfere with the remote device
Full-Screen Mode
The app uses immersive full-screen mode with these flags:SYSTEM_UI_FLAG_LAYOUT_STABLESYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATIONSYSTEM_UI_FLAG_LAYOUT_FULLSCREENSYSTEM_UI_FLAG_HIDE_NAVIGATIONSYSTEM_UI_FLAG_FULLSCREENSYSTEM_UI_FLAG_IMMERSIVE_STICKY
Screen Rotation Handling
The app intelligently handles rotation changes:Automatic Rotation
When the remote device rotates:- Detection: Server sends new resolution configuration
- Unbind: Current service connection is released
- Swap: Screen dimensions are swapped (height ↔ width)
- Reorient: Local orientation changes to match
- Rebind: Service reconnects with new parameters
Portrait to Landscape
Portrait to Landscape
- App switches to
SCREEN_ORIENTATION_SENSOR_LANDSCAPE - Dimensions swapped automatically
- Touch coordinates recalculated
- No reconnection required
Landscape to Portrait
Landscape to Portrait
- App switches to
SCREEN_ORIENTATION_SENSOR_PORTRAIT - Reverse dimension swap
- Touch mapping updated
- Seamless transition
Aspect Ratio Adjustment
The app automatically adjusts padding to maintain correct aspect ratio: When remote device is narrower:- Adds horizontal padding (letterboxing)
- Centers the video stream
- Adds vertical padding (pillarboxing)
- Maintains proportions
Control Precision
For applications requiring precise touch input:High-Precision Mode
- Touch coordinates use floating-point calculations
- Conversion to integer only at final step
- Minimizes rounding errors
- Accurate to pixel level on remote device
Timing Considerations
- Touch events are queued for reliable delivery
- Events sent as fast as network allows
- No artificial delays added
- Queue cleared on disconnect to prevent stale events
Disabling Controls
For view-only mode (presentations, monitoring):- Enable “Viewing mode (no control)”
- All touch listeners are removed
- Navigation buttons are disabled
- Only viewing is possible
This is useful for demonstrations where you want to prevent accidental input.
Next Steps
Configuration
Optimize settings for your use case
Troubleshooting
Solve control responsiveness issues
