我的应用程序允许用户截取屏幕截图,然后将其发送到服务器。
在真实设备上,屏幕截图保存在 /storage/emulated/0/Pictures/Screenshots/
这样就可以了。
但是在模拟器上,当我点击Take screenshot按钮(位于模拟器旁边的面板中)时,屏幕截图会保存到我的电脑上,但我无法在任何地方找到它在模拟器的文件系统中 - /storage/emulated/0/Pictures/
目录存在,但 /storage/emulated/0/Pictures/Screenshots/
子目录不存在不是。
有什么方法可以在模拟器上访问屏幕截图图像,或者有其他方法可以截取屏幕截图吗?
最佳答案
模拟 Volume Down + Power 事件触发 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”,这可能与其他设备不同。您可以通过运行 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
关于Android - 如何通过模拟器访问模拟器屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44495473/