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

ban*_*ing 5 android android-emulator android-screen

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

在真实设备上,屏幕截图保存在一起,/storage/emulated/0/Pictures/Screenshots/这样就可以了.

但是在模拟器上,当我单击Take screenshot按钮(位于模拟器旁边的面板中)时,屏幕截图会保存到我的计算机上,但我无法在模拟器的文件系统中找到它 - /storage/emulated/0/Pictures/目录存在,但/storage/emulated/0/Pictures/Screenshots/子目录没有.

有什么方法可以访问模拟器上的截图图像,还是有其他方式来截取屏幕截图?

Don*_*pan 6

它将保存在您的PC中.您还可以从模拟器设置中指定屏幕截图的位置.

请参阅以下图片以供参考.

在此输入图像描述


小智 6

很老的问题,但您可以使用电源菜单:按住电源按钮 在此处输入图片说明

  • 这应该是公认的答案。在设备本身上获取屏幕截图的更简单有效的方法。 (2认同)

wrk*_*wrk 5

模拟降低音量+电源事件以触发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
Run Code Online (Sandbox Code Playgroud)

注意:我的仿真器的输入设备是“ / dev / input / event1”,其他设备可能有所不同。您可以通过运行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
Run Code Online (Sandbox Code Playgroud)