我的目标是使用前置和后置摄像头自动执行捕获和保存图片的过程。
我正在使用运行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或手机上的其他地方。
答案 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年以上的旧设备来说,这是一个很长的答案,但仍会以某种方式完成工作!