BudSwipe is a modern, high-precision Android application that empowers you to browse Instagram Reels and Facebook Reels completely hands-free using your Bluetooth earbuds.
-
Hands-Free Vertical Reels Navigation
- Left Earbud Tap → Swipe UP to next Reel.
- Right Earbud Tap → Swipe DOWN to previous Reel.
- Fallback single-button action for earbuds with single media code.
-
Real-time Bluetooth & Media Key Telemetry
- Live hardware event monitor showing
keyCodename, numerical ID, event action (ACTION_DOWNvsACTION_UP), timestamp, and debounce status. - Earbud Signal Calibration wizard to test left and right earbuds independently and diagnose if your buds output stereo-distinct signals.
- Live hardware event monitor showing
-
Android Accessibility Gesture Simulation
- Employs the official Android
AccessibilityServicedispatchGesture()API with configurable vertical travel distance (35%–85% of screen height), duration/flick speed (120ms–500ms), and haptic vibration feedback. - Safe foreground gating: automatically restricts swipes to Instagram (
com.instagram.android) and Facebook (com.facebook.katana,com.facebook.lite) so gestures never trigger on your home screen or inside other apps.
- Employs the official Android
-
100% Privacy & Security
- Zero Internet Permission: BudSwipe does not declare or use
android.permission.INTERNET. No network requests are made. - Zero Screen Scraping: The accessibility service only injects swipe gestures; it never reads, logs, or intercepts screen contents.
- All settings are saved locally using Android Jetpack DataStore Preferences.
- Zero Internet Permission: BudSwipe does not declare or use
Android receives standard Bluetooth media button events (KEYCODE_MEDIA_NEXT, KEYCODE_MEDIA_PREVIOUS, KEYCODE_MEDIA_PLAY_PAUSE). By default, many earbuds assign generic Play/Pause to both buds.
To enable independent left and right earbud swiping:
- Open your earbud companion app (e.g., Realme Link, HeyMelody, Galaxy Wearable, or Sony Headphones Connect).
- Go to Touch / Gesture Settings.
- Set Left Earbud (Double Tap or Triple Tap) → Previous Track.
- Set Right Earbud (Double Tap or Triple Tap) → Next Track.
- When tapped, your earbuds will emit distinct
KEYCODE_MEDIA_PREVIOUSandKEYCODE_MEDIA_NEXTevents. BudSwipe intercepts these and triggers the respective upward and downward Reel swipes seamlessly!
| Permission | Purpose |
|---|---|
BIND_ACCESSIBILITY_SERVICE |
Required to simulate screen gestures via dispatchGesture(). |
BLUETOOTH_CONNECT |
Detects connected audio device name on Android 12+. |
FOREGROUND_SERVICE_MEDIA_PLAYBACK |
Maintains active MediaSession in the background. |
POST_NOTIFICATIONS |
Displays the persistent status notification required by Android. |
VIBRATE |
Optional subtle haptic feedback upon successful gesture dispatch. |
- JDK 17 or higher
- Android SDK 36 (Minimum API 26 / Android 8.0)
- Gradle 8.x+ / AGP 9.1+
gradle assembleDebugThe generated APK will be located at:
app/build/outputs/apk/debug/app-debug.apk
gradle testDebugUnitTest