使用adb和活动管理器以指定名称捕获Android上的JPEG图像

问题描述 投票:-1回答:1

更新我完全理解,所有应用程序都是不同的,并且没有标准。我在问以下问题,希望拥有三星相机应用程序内部知识的人可以阅读。

我正在开发一个自动化工具,该工具应该使用Android智能手机捕获图像。

智能手机始终使用USB电缆连接到PC,并由adb控制。

到目前为止,我已经成功启动了相机应用程序,将其发送给KEYCODE_CAMERA事件并在默认相机目录(/sdcard/DCIM/Camera)中提取了最新文件:

adb am start -a android.media.action.STILL_IMAGE_CAMERA -n com.sec.android.app.camera/.Camera       # launch camera app.
adb shell input keyevent KEYCODE_CAMERA   # take a picture
adb shell ls -t /sdcard/DCIM/Camera | head -1   # determine name of newly created file

我不喜欢无法关闭自动曝光和其他在三星相机应用程序中默认启用的“魔术”功能。我也无法控制文件名。

我发现了另一个动作android.media.action.IMAGE_CAPTURE。当我使用它启动Intent时,相机应用程序不会显示任何其他控件。

当我发送KEYCODE_CAMERA事件时,它显示捕获的图像的预览以及两个按钮“重复”和“确定”。发布KEYCODE_ENTER事件后,此预览消失。

但是,我看不到任何带有捕获图像的文件。

活动管理器在没有参数的情况下运行时会显示很多命令行开关,这表明它提供了很多机会。

是否可以使相机活动来保存文件?

android automation camera adb
1个回答
0
投票

没有标准的adb选项可让您控制任意相机应用程序执行任意操作。同样,也没有标准的adb操作来打印文件,启动洗碗机或发射火箭。使用adbam命令所能做的就是制作Intent-与以前创建的所有API一样,Intent可能允许的内容取决于Intent的接收者。

[除了照相机应用程序的开发人员以外,没有人知道该应用程序可能有哪些未记录且不受支持的Intent选项。说它是“三星”相机应用程序,仅将范围限制为三星多年来已交付的几十种预装相机应用程序。

当然,我们欢迎您检查源代码以开放原始码的相机应用程序,并查看是否有Intent选项可让您通过adb完成所需的操作。但是,不能保证随着相机应用程序的不断发展,这些设置将保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.