gpt4 book ai didi

android - 将 MediaStore.EXTRA_OUTPUT 用于 ACTION_IMAGE_CAPTURE 时对 onActivityResult 的 Intent 为空

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:36 37 4
gpt4 key购买 nike

我正在尝试从我的 ACTION_IMAGE_CAPTURE Activity 中检索文件,但是当我使用

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

我的 Activity 结果为空 Intent 。这是完整的代码。

Intent

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(cameraIntent, 1888);

我的 onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == 1888 && resultCode == RESULT_OK)
{
Uri uri = (Uri)data.getData();
Intent i = new Intent(getApplicationContext(), Camara.class);
i.putExtra("uri", uri);
startActivity(i);
}
}

我正在使用以下权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我需要访问所捕获图像的文件,但我的参数 data 为空

然后,如何获取文件?像这样?

File myfile = new File(uri.getPath());

我也试过这个:

Uri uri = (Uri)data.getData();
Intent i = new Intent(getApplicationContext(), Camara.class);
i.putExtra("uri", uri);
startActivity(i);

在这种情况下我可以得到位图

Bitmap lafoto = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);

但是我无法获取文件

我尝试遵循此解决方案但对我不起作用 Get Path of image from ACTION_IMAGE_CAPTURE Intent

最佳答案

问题是,当您提供 extra_output 时,文件会写入提供的 URI,因此您只需通过该 URI 访问即可使用捕获的图像。因此,在 onActivityResult 上没有提供任何数据,因为当相机应用 Intent 中没有提供 extra_output 时,相机应用只会返回一个迷你位图作为 onActivityResult 中的 Intent extra。

关于android - 将 MediaStore.EXTRA_OUTPUT 用于 ACTION_IMAGE_CAPTURE 时对 onActivityResult 的 Intent 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609527/

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