Android 4.4在使用adb命令捕获时不允许我保存图片

时间:2014-03-13 18:34:17

标签: android adb nexus-5

我的目标是使用前置和后置摄像头自动执行捕获和保存图片的过程。

我正在使用运行Android版本4.4.2的Nexus 5,而我还没有使用它。

我使用以下命令分别打开前置和后置摄像头:

>adb shell am start -a android.media.action.IMAGE_CAPTURE --ei android.intent.extras.CAMERA_FACING 1


>adb shell am start -a android.media.action.IMAGE_CAPTURE --ei android.intent.extras.CAMERA_FACING 0

(我在先前的stackoverflow post-> ADB command to toggle camera modes in android device

中找到了这些命令

问题在于,当设备处于这些模式中的任何一种模式时,执行此命令时仅捕获不保存图像:

>adb shell input keyevent KEYCODE_CAMERA

运行此命令后,屏幕上会显示照片以及用于保存,丢弃或重新拍摄照片的按钮。但是,保存选项似乎没有做任何事情。

我有两个具体问题:

1。)是否有可用于打开任何一台相机的替代命令?

2.。)如何确保图像没有保存在某个意外的位置?

我真的很感激这个问题的一些帮助。

编辑:我不需要将图片存储在我的电脑上,我希望它可以放在/ sd / card / DCIM / Camera或手机上的其他地方。

1 个答案:

答案 0 :(得分:1)

2020年,我正在回收的“旧”设备(Android KitKat 4.4 )上遇到相同的问题,而这个问题首先出现在Google上。

因此,似乎至少有两种方法可以调用相机应用程序(在Android 4.4上返回):IMAGE_CAPTURE(您叫什么)和STILL_IMAGE_CAMERA

发送adb shell input keyevent KEYCODE_CAMERA后,第一个请求确认,但我找不到要验证射击的要发送的关键代码。因此,照片不会保存。

后者不要求确认,并且直接保存图片。总结一下,这是我输入的所有要在 KitKat 手机上拍照的行(将IMAGE_CAPTURE替换为STILL_IMAGE_CAMERA)。

adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA"
adb shell "input keyevent KEYCODE_FOCUS"
adb shell "input keyevent KEYCODE_CAMERA" #actually takes photo and saves it

以及相应的单线:

adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" && sleep 1 &&  adb shell "input keyevent KEYCODE_FOCUS" && sleep 1 &&  adb shell "input keyevent KEYCODE_CAMERA"

如果它仍然不适合您,请继续阅读:

实际上,我忽略了Pragy Agarwal的评论,因为首先它没有用。而且它不起作用,因为电话屏幕已关闭。因此,必须先按电源键才能打开屏幕(但如果已经以suggested here的形式打开,则不要按该键):

adb shell dumpsys power | grep "mScreenOn=true" | xargs -0 test -z && adb shell "input keyevent KEYCODE_POWER"

如果就我而言,由于相机应用程序以某种方式显示了最后拍摄的照片,它仍然无法正常工作,则在进入相机应用程序时必须先按返回按钮:

adb shell input keyevent KEYCODE_BACK

总而言之

adb shell dumpsys power | grep "mScreenOn=true" | xargs -0 test -z && adb shell "input keyevent KEYCODE_POWER" # switch the screen on

adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA"

adb shell input keyevent KEYCODE_BACK # go back to the "real time" camera not the gallery

adb shell "input keyevent KEYCODE_FOCUS"
adb shell "input keyevent KEYCODE_CAMERA" # shoots the picture and saves it

哪个变成了:

adb shell "dumpsys power" | grep "mScreenOn=true" | xargs -0 test -z && adb shell "input keyevent KEYCODE_POWER" && sleep 1 && adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" && sleep 1 && adb shell "input keyevent KEYCODE_BACK" && sleep 1 &&   adb shell "input keyevent KEYCODE_FOCUS" && sleep 1 &&  adb shell "input keyevent KEYCODE_CAMERA"

对于使用7年以上的旧设备来说,这是一个很长的答案,但仍会以某种方式完成工作!