如何从 adb shell 运行 Android 相机应用程序?

Posted

技术标签:

【中文标题】如何从 adb shell 运行 Android 相机应用程序?【英文标题】:How can I run Android camera application from adb shell? 【发布时间】:2011-11-16 03:50:14 【问题描述】:

如何从 adb shell 运行安卓相机程序? 我知道我应该使用 am 但我不知道我应该准确输入什么命令

我用过这个:

am start -a android.intent.action.MAIN -n com.android.camera 

但它没有用!

【问题讨论】:

【参考方案1】:

或者,您可以通过其他 2 种方式启动相机

    图像采集模式:adb shell "am start -a android.media.action.IMAGE_CAPTURE" 视频拍摄模式:adb shell "am start -a android.media.action.VIDEO_CAPTURE"

其他信息

    关注:adb shell "input keyevent KEYCODE_FOCUS" 拍照或开始/停止录制:adb shell "input keyevent KEYCODE_CAMERA"

其他说明

如果键码字符串(例如 KEYCODE_CAMERA)不起作用,请从 API 描述中查找常量值。示例:KEYCODE_CAMERA

KEYCODE_CAMERA: Added in API level 1
Constant Value: 27 (0x0000001b)

【讨论】:

至少在我的 Android 上,输入 keyevent 需要一个 int。 input keyevent 27 是相机按钮。 注明。如果字符串值不起作用,您必须从 API 描述中查找它。我已经在答案中添加了注释。谢谢。 刚刚在运行 4.0.4 的 LG L7 上试了一下,结果“错误:找不到设备” 如果设备连接在远程机器上并且 Jenkins 在另一台机器上运行,这是否有效【参考方案2】: 创建一个CameraActivity 类。 在那里实现相机功能并添加到AndroidManifest.xml 文件中。

然后使用以下命令:

am start -a android.intent.action.MAIN -n [package-name].CameraActivity 

希望这能解决你的问题。

【讨论】:

【参考方案3】:

我想补充 Keo Malope 的回答,虽然 IMAGE_CAPTURE 和 VIDEO_CAPTURE 可能适用于大多数设备,但我遇到过它们无法按预期工作的情况。在这种情况下,我们可以尝试另外两个常量:

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

【讨论】:

好东西。对于我的香草联想 P2,STILL_IMAGE_CAMERA 工作得很好,因为它正确地拉起了非库存相机,而答案中的 IMAGE_CAPTURE 选项拉起了一些我从未见过的奇怪相机(它拍了照片但没有将它们保存到磁盘) .【参考方案4】:

您需要指定确切的组件名称(活动名称)。

am start -a android.intent.action.MAIN -n com.android.camera/.CameraEntry

它在我的设备 (HTC Desire HD) 上运行,但我不能保证它可以在任何地方运行。

【讨论】:

【参考方案5】:

这里适合我

adb shell am start -n com.mediatek.camera/com.android.camera.CameraActivity

【讨论】:

以上是关于如何从 adb shell 运行 Android 相机应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android程序中执行adb shell命令

如何使用 adb shell 从 Android 设备中删除内置应用程序

如何启动adb shell命令

如何用adb shell 指令获得android当前的activity

如何在android程序中执行adb shell命令

Android 常用adb shell 命令(转)