如何从 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_CAMERAadb 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 相机应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 adb shell 从 Android 设备中删除内置应用程序