use*_*096 5 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
Run Code Online (Sandbox Code Playgroud)
(我在之前的stackoverflow post-> ADB命令中找到了这些命令来切换android设备中的摄像头模式)
问题是,当设备处于其中一种模式,它将只捕获和未保存的图像时,我执行以下命令:
>adb shell input keyevent KEYCODE_CAMERA
Run Code Online (Sandbox Code Playgroud)
运行此命令后,屏幕上会显示照片以及用于保存,丢弃或重新拍摄照片的按钮.但是,保存选项似乎没有做任何事情.
我有两个具体问题:
1.)是否有任何替代命令可用于打开任一相机?
2.)如何确保图像未保存在某个意外位置?
我真的很感激这个问题的一些帮助.
编辑:我不需要将图片存储在我的电脑上,我希望它在/ sd/card/DCIM/Camera或手机上的其他地方.
我在…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
Run Code Online (Sandbox Code Playgroud)
以及相应的一行:
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"
Run Code Online (Sandbox Code Playgroud)
如果它仍然不适合您,请继续阅读:
事实上,我忽略了 Pragy Agarwal 的评论,因为它首先不起作用。但它不起作用,因为手机屏幕关闭了。因此,必须先按下电源键才能打开屏幕(但如果屏幕已经打开,则不要按此处的建议):
adb shell dumpsys power | grep "mScreenOn=true" | xargs -0 test -z && adb shell "input keyevent KEYCODE_POWER"
Run Code Online (Sandbox Code Playgroud)
如果对我来说它仍然不起作用,因为相机应用程序以某种方式显示最后拍摄的照片,则在进入相机应用程序时必须先按后退按钮:
adb shell input keyevent KEYCODE_BACK
Run Code Online (Sandbox Code Playgroud)
所以总而言之
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
Run Code Online (Sandbox Code Playgroud)
这变成:
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"
Run Code Online (Sandbox Code Playgroud)
对于一台已经使用了 7 年以上但仍在正常工作的设备来说,这是一个多么长的答案啊!
| 归档时间: |
|
| 查看次数: |
2311 次 |
| 最近记录: |