-
-
Notifications
You must be signed in to change notification settings - Fork 55
Watch
The Watch feature group connects Essentials to your WearOS smartwatch via the Wearable Data Layer API, enabling two-way sync and remote control features.
The Watch features require the Essentials WearOS companion app installed on your smartwatch.
Communication uses the Google Wearable MessageClient and DataClient APIs.
ID: Calendar Sync
Permissions: READ_CALENDAR
Toggle: Yes
Periodically syncs all phone calendars to your WearOS watch so your events stay up to date.
-
CalendarSyncManagerreads calendars from the phone'sCalendarContract - Data is sent to the watch via
DataClient.putDataItem() -
CalendarSyncWorkerschedules periodic background sync via WorkManager
- Syncs all visible phone calendars — no per-calendar filtering yet
- Sync interval is managed by WorkManager constraints (network/battery state)
- Requires
READ_CALENDARto access your phone's calendar data
ID: Lock from Watch
Sub-feature of: Watch
Allows your WearOS watch to send a lock command to your phone. Useful when you've left your phone across the room.
- Watch sends a
MessageClientmessage on the/lock_phonepath -
EssentialsWearableListenerServiceon the phone receives it and locks the screen viaDevicePolicyManager.lockNow()
Opens LockFromWatchSettingsUI — configure which watch gestures trigger the lock.
ID: Watch Controls
Sub-feature of: Watch
Control certain phone features from your watch — media playback, sound mode, and more.
Opens WatchControlsSettingsUI — view and configure available watch-initiated actions.
ID: Watch Wireless Debugging
Toggle: Yes
Sub-feature of: Watch
Toggles ADB over WiFi on your WearOS watch from the phone. Useful for debugging the watch companion app without a physical USB connection.
Sends a MessageClient message to connected watch nodes on the /toggle_watch_adb_wifi path. The watch companion app receives it and toggles its ADB WiFi setting.
The toggle state is stored in SharedPreferences under the key watch_adb_wifi_enabled.
ID: Sync sound mode
Toggle: Yes
Sub-feature of: Watch
Keeps the phone and watch sound mode in sync. When you switch to Silent or Vibrate on one device, the other follows.
- State stored in
SharedPreferenceskeywatch_sync_sound_mode_enabled - When enabled,
DeviceInfoSyncManager.forceSync()is called to push current sound mode to the watch - The watch companion app applies the received sound mode
ID: Sync location reached status
Toggle: Yes
Sub-feature of: Watch
Shares the Location Reached (geofence arrival) status with your watch, allowing the watch to display an alert or take action when you're near your destination.
- State stored under
watch_sync_location_reached_enabled - When a location is reached,
DeviceInfoSyncManager.forceSync()pushes the state to the watch
Watch communication is handled by EssentialsWearableListenerService which extends WearableListenerService:
EssentialsWearableListenerService
├── onMessageReceived() — Phone receives commands from watch
├── onDataChanged() — Sync data changes from watch
└── forceSync() — Push phone state to watch
DeviceInfoSyncManager coordinates all data sent to the watch:
- Battery level
- Sound mode
- Location reached status
- Calendar events