解决华为手机获取相册图片路径为null

最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,网上找了很多资料,都没什么实用的效果

Intent intent;
intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);

网上说android4.4以后官方建议用ACTION_OPEN_DOCUMENT,但是我加进去没什么变化,还是会报空指针异常,当用户选择完图片返回的url,重点还是url返回的路径识别不了,所以我们要把重点放在路径上,这个就是读取不到的图片路径

其他手机url路径:content://media/external/images/media/299
华为手机获取的路径:content://com.android.providers.media.documents/document/image%3A100595

很明显,华为返回的这个只是有url的图片编码,可能都不是真实路径

解决方案

翻阅很多文献,找到这个,这个Intent.ACTION_PICK,扩展性更强,后面可以定义要拿到的url

 intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  

记录下来,希望踩过的坑对大家有帮助

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,143评论 25 709
  • 如以上DEMO截图所示效果,我们对于这种类似的功能肯定不算陌生,因为这可以说是实际开发中一类非常常见的功能需求了。...
    Machivellia阅读 2,269评论 1 13
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,771评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,185评论 19 139
  • 写第一篇文章的神勇还记得,第二篇文章就让我有换坑挖的冲动了。 不支持Mathjax,简单做了搜索,就是不支持。中文...
    Esparami阅读 245评论 0 0