【问题标题】:Take picture only with android camera intent in Kotlin, not video仅在 Kotlin 中使用 android 相机意图拍照,而不是视频
【发布时间】:2020-03-29 19:02:37
【问题描述】:

我正在使用以下 Kotlin 代码在一个简单的 Android 应用上打开相机并拍摄用户个人资料照片。我只想拍照片,不拍视频。当我开始活动并且相机打开时,它还可以让我录制视频。

val contentVvalues = ContentValues()
contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg")
contentValues.put(MediaStore.Images.Media.TITLE, "My Picture")
contentValues.put(MediaStore.Images.Media.DESCRIPTION, "My first picture")
this.imageURI = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)

val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageURI)

startActivityForResult(cameraIntent, ACTION_IMAGE_CAPTURE_CODE)

我想知道任何人都可以帮助我解决如何只使用图像控件?

我还注意到我得到了贴纸和其他控件。如何删除这些?

感谢您的帮助!

【问题讨论】:

    标签: android kotlin android-camera2


    【解决方案1】:

    当我开始活动并且相机打开时,它还可以让我录制视频。

    大约有 25 亿台 Android 设备,分布在大约 26,000 种设备型号中。这些设备型号中将有数十个(如果不是数百个)预安装的相机应用程序可能会响应ACTION_IMAGE_CAPTURE。用户可能已经安装了数十个(如果不是数百个)相机应用程序,这些应用程序可能会响应ACTION_IMAGE_CAPTURE。您的代码可能会启动这数百个应用程序中的任何一个。

    相机应用的功能取决于相机应用的开发者,而不是您。

    我还注意到我得到了贴纸和其他控件。如何删除这些?

    你没有。这是相机应用开发者的选择。

    如果同时提供静态图像和视频捕获,这可以说是该特定相机应用程序中的一个错误。您对此无能为力。

    我想知道任何人都可以帮助我解决如何只使用图像控件?

    停止使用ACTION_IMAGE_CAPTURE。编写自己的相机代码,可能使用库(Google 的 CameraX、Fotoapparat、CameraKit-Android 等)。

    【讨论】:

    • 啊,我明白了。 Android也相当新,所以我不明白。感谢您的答复。我会研究一下 Camera 或 CamerKit。
    • @LilMoke:CameraX 可能将成为这个领域的长期赢家,因为它来自 Google。但是,它仍处于 alpha 版本中,而其他版本已存在多年。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多