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

时间:2011-09-13 12:51:01

标签: android shell adb

如何从adb shell运行android摄像头程序?
我知道我应该使用am但我不知道应该输入什么命令

我用过这个:

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

但它不起作用!

5 个答案:

答案 0 :(得分:36)

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

  1. 图像捕获模式:adb shell "am start -a android.media.action.IMAGE_CAPTURE"
  2. 视频捕捉模式:adb shell "am start -a android.media.action.VIDEO_CAPTURE"
  3. 其他信息

    1. 专注:adb shell "input keyevent KEYCODE_FOCUS"
    2. 拍摄照片或开始/停止录制:adb shell "input keyevent KEYCODE_CAMERA"
    3. 其他说明

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

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

答案 1 :(得分:2)

  • 创建CameraActivity课程。
  • 在那里实现相机功能并添加到AndroidManifest.xml文件。
  • 然后使用以下命令:

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

我希望这能解决你的问题。

答案 2 :(得分:1)

我想补充一下Keo Malope的回答,尽管IMAGE_CAPTUREVIDEO_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

答案 3 :(得分:0)

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

  

我开始-a android.intent.action.MAIN -n com.android.camera/.CameraEntry

它正在我的设备上运行(HTC Desire HD),但我无法保证它能在任何地方使用。

答案 4 :(得分:0)

这对我有用

interface Car<T> {
    model: string;
    transmission: T;
}

type AnyCar = Car<any>;