Search code examples
androidadbwear-os

Is it possible to use adb to take a screenshot of a wearable connected via bluetooth?


I have an LG watch which I can connect directly to my developer machine using USB and therefore can use the following command to take screenshots:

adb shell screencap -p /sdcard/screenshot.png

However my Moto 360 watch doesn't have a usb connection and thus I have to connect it using bluetooth going via its paired handset. This means there are always two devices connected to adb. Thus its not possible to use the adb shell command as adb doesn't know which device to apply it to. Some adb commands can have the device specied, but it doesn't look like this is possible with adb shell.

Using the Take wearables screenshot menu option in the Android Wear app isn't doing anything - it says "Screenshot request sent" but then nothing after that.

So how can I grab a screenshot of the watch? (I want to take a screenshot when there is an incoming phone call)


Solution

  • Enable bluetooth debugging on your wearable and setup a debugging session (described here: Debugging over Bluetooth).

    You have to run any adb command in the following format:

    adb -s localhost:4444 <command>
    

    A simple

    adb -s localhost:4444 shell screencap -p /sdcard/screenshot.png
    adb -s localhost:4444 pull -p /sdcard/screenshot.png
    

    should do the trick ;)