Camera intent.getData()在某些设备中返回null,主要在android 7.0中

问题描述:

Camera intent.getData()返回null,在某些设备上。Camera intent.getData()在某些设备中返回null,主要在android 7.0中

启动相机的结果,

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 

我尝试下面的图像的开放的我们的代码获取路径,

public static Uri getImageUri(Context inContext, Bitmap inImage) { 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
     String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
     return Uri.parse(path); 
    } 

它会给我开放的形象,但图像质量会变差。 任何帮助表示赞赏。

Camera intent.getData()返回null,在某些设备上。

它应该为所有相机应用返回null

我尝试下面的图片

代码不“获得图像的开放的我们的路”的开放的我们的代码获取路径。它将Bitmap保存为随机的未记录文件,然后从代表该内容的MediaStore返回Uri

它也浪费堆空间,因为你创建ByteArrayOutputStream,写入一个JPEG,然后把它扔掉。

图像质量会变差

的图像质量差,首先,因为你问的摄像头应用程序,让您的缩略图。使用EXTRA_OUTPUT告诉相机应用程序保存全分辨率图像的位置,然后在onActivityResult()中使用该位置。 This sample app演示了这一点。

+0

授予写入外部存储器的权限,同时在运行时检查权限 –

+0

也在清单文件中添加此项:android:largeHeap =“true” –