2017-06-12 20 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"ですが、これは他のデバイスと異なる場合があります。あなたは、エミュレータのキーを押すと、出力が(そう0x0072が114Dである、私の音量ダウンキー、これらは進数値である)このようなものになります、その後、adb shell geteventのコマンドを実行して、デバイス情報を取得することができます

/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

は、パソコンに保存されます。また、エミュレータの設定からスクリーンショットの場所を指定することもできます。

参照のため、次の画像を参照してください。

enter image description here

1

それは、あなたが、あなたのエミュレータの右側からよりアイコンをクリックして、エミュレータの設定から場所を見ることができ、あなたのデバイス(PC)に保存して設定をクリックします

screen shot location

+0

ありがとうございます。**スクリーンショット保存場所**は私のファイルパスですコンピュータ、エミュレータ用ではありません(?) –

+0

はい、** PCに保存されます** –

0

多くのAndroidデバイス上でスクリーンショット を取り、あなたはスクリーンショットのウィットをキャプチャすることができますhキーの組み合わせ:電源と音量を同時に押し続けます。 Android Studioで次のようにスクリーンショットをキャプチャすることもできます:

接続しているデバイスまたはエミュレータでアプリを開きます。接続デバイスを使用する場合は、USBデバッグを有効にしてください。 Androidスタジオで、表示>ツールウィンドウ> Androidモニターを選択して、Androidモニターを開きます。 ウィンドウの上部にあるドロップダウンからデバイスを選択します。 ウィンドウの左側にある[スクリーンキャプチャ]をクリックします。 スクリーンショットはスクリーンショットエディタウィンドウに表示されます。

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

Taking screenshot on Emulator from Android Studio

+1

ありがとうございますが、まだエミュレータファイルシステム経由でアクセスできるスクリーンショットイメージファイルはありませんか? –

0

使用adb screencapコマンドを使用すると、エミュレートされたデバイスにスクリーンキャプチャが保存され、アプリケーションをテストできます。

関連する問題