对于某些手机,Android data.getData()从CameraActivity返回null

对于某些手机,Android data.getData()从CameraActivity返回null,第1张

概述我的onActivityResult从相机活动回来时发生致命错误.让我感到头疼的是,错误只发生在少数手机上(基于受影响的用户数量),而大多数人似乎没有任何错误.我可以在我的Nexus 6(运行Lollipop 5.1.1)上复制错误,而我的Note 5(也是5.1.1)完全没有问题.问题是当我尝试从data.getData()分配imageUri时.在Not

我的onActivityResult从相机活动回来时发生致命错误.让我感到头疼的是,错误只发生在少数手机上(基于受影响的用户数量),而大多数人似乎没有任何错误.我可以在我的Nexus 6(运行Lollipop 5.1.1)上复制错误,而我的Note 5(也是5.1.1)完全没有问题.

问题是当我尝试从data.getData()分配imageUri时.在Note 5上调试,data.mData等于“content:// media / external / images / media / 2215”,而在Nexus 6上,data.mData为null.

我知道这是一个常见的问题,但到目前为止我还没有找到任何帮助我的东西.任何人都可以指出我的解决方案并提供答案吗?

方法启动结果的相机活动

@OnClick(R.ID.change_image_camera) public voID takePicture(){    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);}

onActvityResult

@OverrIDepublic voID onActivityResult(int requestCode,int resultCode,Intent data) {    super.onActivityResult(requestCode,resultCode,data);    if (resultCode == Activity.RESulT_OK) {        Uri imageUri = data.getData(); //The trouble is here        String realPath = Image.getPath(this,imageUri); //getPath crashes because imageUri is null        Image.compressImage(realPath);        file file = new file(realPath);        Bundle extra = new Bundle();        extra.putString("URL",realPath);        returnIntent.putExtras(extra);        setResult(RESulT_OK,returnIntent);        finish();    }}

我非常感谢你对这个有任何帮助!最佳答案

Uri imageUri = data.getData(); //The trouble is here

没有要求相机应用程序返回指向照片的Uri,因为这不是the ACTION_IMAGE_CAPTURE Intent protocol的一部分.要么:

>在ACTION_IMAGE_CAPTURE Intent中提供EXTRA_OUTPUT,在这种情况下,您知道应该存储图像的位置,并且不需要依赖getData(),或者
>在响应Intent中使用extra extra,它将是图像缩略图的Bitmap

你的下一个错误是:

String realPath = Image.getPath(this,imageUri);

除非您通过EXTRA_OUTPUT提供指向该位置的路径,否则不要求将图像存储为您可以访问的文件. 总结

以上是内存溢出为你收集整理的对于某些手机,Android data.getData()从CameraActivity返回null全部内容,希望文章能够帮你解决对于某些手机,Android data.getData()从CameraActivity返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1149717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存