Java Android果冻豆摄像头返回空URI
我正在尝试使用相机在我的应用程序中拍照,然后裁剪拍摄的图像 Android的最新版本一切正常,但Android Kitkat 4.4.2则不然 相机返回一个空URI 获取ActivityReslult上的URI:Java Android果冻豆摄像头返回空URI,java,android,android-camera,uri,Java,Android,Android Camera,Uri,我正在尝试使用相机在我的应用程序中拍照,然后裁剪拍摄的图像 Android的最新版本一切正常,但Android Kitkat 4.4.2则不然 相机返回一个空URI 获取ActivityReslult上的URI: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_CODE &&am
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_CODE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
picUri = data.getData();
Intent i = new Intent(PublierActivity.this, CropActivity.class);
i.putExtra("Uri", picUri);
startActivityForResult(i, CROP_CODE);
}
以下是我如何称呼摄像机的意图:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, CAMERA_CODE);
}
有没有办法为android的最旧版本破例来解决这个问题 从您的代码中,似乎您正在尝试使用
操作\图像\捕获
。在这种情况下,永远不应该有Uri
-数据。getData()
应该始终返回null
。如果相机应用程序恰好返回一个Uri
,这可能就是图像,但由于操作\u image\u CAPTURE
未记录为返回Uri
,因此您无法知道该Uri
的用途
如果您在动作图像捕获
意图
上使用额外输出
,您知道图像应该存储在哪里,因为您告诉了摄像头应用程序将图像存储在哪里。请注意,一些相机应用程序有缺陷,无法执行额外的\u输出
,将图像放在他们想要的任何地方
如果未使用EXTRA\u输出
,则会在的“数据”
EXTRA中返回缩略图
此外,请记住,这与Android操作系统版本无关,而与用户选择使用的摄像头应用程序有关。Android设备有数千种型号。这些相机附带了几十个(如果不是几百个的话)不同的相机应用程序。用户还可以选择安装第三方相机应用程序。任何一个都可以处理你的请求