android 在 OnActivityResult() 中处理相机图像

android process camera image AFTERwards in OnActivityResult()

根据我正在使用的 Google Android 相机教程:

new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

在我的应用程序中打开相机。

不幸的是,这会强制用户事先决定并阻止用户在图片和视频模式之间切换。

我的问题是我希望用户直接转到相机,能够在图片和视频模式之间切换, 然后相应地保存 image/video。

有什么方法可以:

1) 读取onActivityResult()中的Intent数据并

2) 确定 (AFTER 图片已保存,NOT之前)无论是图片还是视频,

然后

3) 相应地将图像重命名为“.jpg”或“.mp4”?

我注意到当我使用

new Intent(MediaStore.INTENT_ACTION_VIDEO_CAMERA);

然后相机可以在图片和视频之间切换。

但是它不会以编程方式保存文件。

I want the user to go directly to the camera, be able to toggle between picture & video mode, and then save the image/video accordingly.

这通常是不可能的,原因很简单,因为您要求 其他应用程序 代表您拍摄照片和视频。 Android 为此建立的协议是通过您目前正在使用的 Intent 操作。没有 ACTION_CAPTURE_SOMETHING_THAT_THE_USER_THINKS_IS_COOL 或等价物允许您表达您希望用户在启动第三方相机后做出选择 activity。

I've noticed that when I use new Intent(MediaStore.INTENT_ACTION_VIDEO_CAMERA); that the camera can then toggle between pic & vid.

仅适用于您尝试过的几千个相机应用(由设备制造商预装,由用户从 Play 商店下载等)。 The documentation 当然不会暗示所有相机应用程序都会出现这种行为。