在 Kotlin 中仅使用 android 相机意图拍摄照片,而不是视频

Take picture only with android camera intent in Kotlin, not video

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

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)

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

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

感谢您的帮助!

When I start the activity and the camera opens it also lets me record video.

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

相机应用程序的功能取决于相机应用程序的开发人员,而不是您。

I also notice I get the stickers and other controls. How do I remove those?

你不知道。这是相机应用开发者的选择。

在同时提供静态图像和视频捕获的情况下,这可以说是该特定相机应用程序中的错误。你对此无能为力。

I was wondering in anyone could help me with how I could go about having the image controls only?

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