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演示了这一点。
授予写入外部存储器的权限,同时在运行时检查权限 –
也在清单文件中添加此项:android:largeHeap =“true” –