【发布时间】:2015-02-19 14:57:32
【问题描述】:
我正在尝试从我的 ACTION_IMAGE_CAPTURE 活动中检索文件,但是当我使用时
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
我的活动结果的意图为空。这是完整的代码。
意图
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(cameraIntent, 1888);
我的活动结果
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
【问题讨论】:
-
get a null intent on my activity result。如果这是真的,那么将会有一个 NullPointerException。有没有?您确定 data==null 吗?还是你的意思是 data.getData()==null? -
当我调试时我看到 data=null 显式
-
所以你有一个 NullPointerExacption!?
-
是的,我猜当你使用 cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);相机应用程序将始终返回空数据并将 jpg 文件写入 Uri 给定
-
你让最后一个工作了吗?我没有成功。一、图片不能通过勾选ok check来确认。其次,这里会给出哪个 uri? MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath() 提供 /external/images/media。
标签: android