2017-06-12 161 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命令到您的模擬設備,這應該將屏幕捕獲存儲在設備本身上,允許您測試您的應用程序。