gpt4 book ai didi

java - 使用 ACTION_IMAGE_CAPTURE 解决错误的好方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:05 25 4
gpt4 key购买 nike

我遇到了问题:ACTION_IMAGE_CAPTURE Intent 的行为取决于硬件制造商。

我认为,从插入照片库的相机中获取照片的最佳方式必须如下所示

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, CAPTURE_IMAGE_REQUEST);

然后在onActivityResult中获取uri:

switch (requestCode) {
case CAPTURE_IMAGE_REQUEST: {
if(resultCode == Activity.RESULT_OK) {
Uri uri = intent.getData();// content uri of photo in media gallery
//do something with this
}
break;
}

但我知道,这在很多设备上都不起作用;此外,我发现了几种不同的相机应用行为场景:

  • 一些设备有bug由于此事件,因此无法获得全尺寸照片,只能使用公共(public)目录中的 tmp 文件获得 512px 宽的照片
  • 一些设备(包括我的)将拍摄的照片插入图库,但不返回 Uri。 (getData() 返回 null,intent extras 只有 boolean 键“specify-data”,value = true)如果我尝试通过公共(public)临时文件获取照片,那么照片将同时插入到图库和临时文件中。
  • 有些设备不会将拍摄的照片插入相册 - 我必须手动插入
  • 我不知道,但可能还有其他不同的场景

那么,是否存在管理此类问题以涵盖广泛的设备和制造商的最佳实践?

在这种情况下,我需要从相机拍摄照片,将其插入图库,然后获取图库中照片的 uri。

最佳答案

部分已经回答:

我认为您不应该检查其他情况。 Google 和 Android OEM 会监控这些问题,因此会报告它们并希望它们得到修复。

关于java - 使用 ACTION_IMAGE_CAPTURE 解决错误的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com