2017-06-12 168 views
0

我的应用程序允许用户截取它然后发送到服务器的截图。Android - 如何通过模拟器访问模拟器截图?

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

但在模拟器上,当我点击采取截图按钮(位于仿真器旁边的面板),截图保存到我的电脑,但我不能在模拟器中的文件的任何地方找到它系统 - 存在/storage/emulated/0/Pictures/目录,但/storage/emulated/0/Pictures/Screenshots/子目录不存在。

有没有什么办法可以访问模拟器上的屏幕截图,还是有另一种截图方式?

+1

我认为大多数答案都没有得到你的问题。您正在寻找一种方法将屏幕截图保存在模拟器本身的'/ storage/emulated/0/Pictures/Screenshots'中吗?你不能在模拟器上使用'power + volume down'组合吗?它工作吗? – Daniele

+0

谢谢Daniele--但我怎样才能同时点击两个按钮? –

+0

使用热键也许?我真的不知道 – Daniele

回答

2

效仿降低音量+电源事件来触发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 
+0

感谢您的支持。我对adb并不熟悉,但我没有将它添加到我的路径中,并且可以运行'adb shell' - 它显示** generic_x86:/ **。从这一点上,我不知道如何粘贴你的代码。* Ctrl + C *不起作用,如果我尝试一行一行地输入你的代码,似乎没有任何事情发生。 –

+0

@ ban-geoengineering如果您使用的是Windows,请点击左上角的图标 - >编辑 - >粘贴;如果您使用的是Linux,右键单击以显示上下文菜单 - >粘贴。 – wrkwrk

+0

你是明星! :-)非常感谢 - 作品一种享受! –

2

将保存在您的PC。您还可以从仿真器设置指定屏幕截图的位置。

请参阅下图以供参考。

enter image description here

1

它会在你的设备(PC)保存,可以看到模拟器的设置位置,点击更多的图标从仿真器的右侧,然后点击设置

screen shot location

+0

谢谢,但** Screenshot保存位置**是我的文件路径计算机,而不是模拟器(?) –

+0

是的,它会将它保存在您的** PC ** –

0

乘坐截图 在许多Android设备上,你可以捕捉截图机智h组合键:同时按下电源和降低音量。您还可以使用Android Studio捕获屏幕截图,如下所示:

在连接的设备或模拟器上打开您的应用程序。如果使用连接的设备,请确保您已启用USB调试。 在Android Studio中,选择视图>工具窗口> Android监视器以打开Android监视器。 从窗口顶部的下拉菜单中选择设备。 单击窗口左侧的屏幕截图。 屏幕截图显示在屏幕截图编辑器窗口中。

https://developer.android.com/studio/debug/am-screenshot.html

Taking screenshot on Emulator from Android Studio

+1

谢谢,但仍然没有可通过仿真器文件系统访问的屏幕截图图像文件? –

0

使用adb screencap命令到您的模拟设备,这应该将屏幕捕获存储在设备本身上,允许您测试您的应用程序。