Android - 如何通过模拟器访问模拟器截图?

Android - How to access emulator screenshot via emulator?

我的应用程序允许用户截取屏幕截图,然后将其发送到服务器。

在真实设备上,屏幕截图保存在 /storage/emulated/0/Pictures/Screenshots/,所以没问题。

但在模拟器上,当我点击截屏按钮(位于模拟器旁边的面板中)时,屏幕截图会保存到我的电脑,但我可以在模拟器的文件系统中找不到它 - /storage/emulated/0/Pictures/ 目录存在,但 /storage/emulated/0/Pictures/Screenshots/ 子目录不存在。

有什么方法可以在模拟器上访问屏幕截图图像,或者有其他方法可以截取屏幕截图吗?

将保存在您的 PC 中。您还可以从 模拟器设置 .

中指定屏幕截图的位置

请参考下图。

它将保存在您的设备(PC)中,您可以从模拟器设置中查看位置,点击更多图标在模拟器右侧,然后点击 setting

模拟音量下+电源事件触发Android的截图,然后截图图片将存储在模拟器的/storage/emulated/0/Pictures/Screenshots

这是脚本。 运行 adb shell,然后复制下面的代码和运行,你应该会看到模拟器开始截屏了。

cat > /data/local/tmp/screenshot.sh <<EOF
#!/bin/sh
echo 'volume key: down'
sendevent /dev/input/event1 1 114 1
echo 'power key: down'
sendevent /dev/input/event1 1 116 1
sendevent /dev/input/event1 0 0 0
sleep 1
echo 'volume key: up'
sendevent /dev/input/event1 1 114 0
echo 'power key: up'
sendevent /dev/input/event1 1 116 0
sendevent /dev/input/event1 0 0 0
EOF
sh /data/local/tmp/screenshot.sh

注意:我的模拟器的输入设备是“/dev/input/event1”,这可能与其他设备不同。您可以通过 运行ning adb shell getevent 命令获取设备信息,然后按下模拟器的键,输出将是这样的(我的音量降低键,这些是十六进制数字,所以 0x0072 是 114d):

/dev/input/event1: 0001 0072 00000001
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0001 0072 00000000
/dev/input/event1: 0000 0000 00000000

对您的模拟设备使用 adb screencap 命令,这会将屏幕截图存储在设备本身上,以便您测试您的应用程序。

很老的问题了,不过你可以使用电源菜单: 按住电源按钮

  1. 转到

Emulator settings > Settings > General > Screenshot save location > 'your file path'

  1. 然后 select 您想要保存屏幕截图的位置。 要找到您截取的屏幕截图,您必须转到步骤 1 找到的 您的文件路径

希望它的工作。