我是靠谱客的博主 沉静仙人掌,最近开发中收集的这篇文章主要介绍Android---相册getContentResolver().query结果为空指针(因为android版本引起),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

针对公司14年代码在小米6手机上图片选择不上,原来因为android版本升级,uri形式变化所致

测试如下代码:

[java]   view plain  copy   在code上查看代码片 派生到我的代码片
  1. Uri uri = data.getData();  
  2. String[] proj = {MediaStore.Images.Media.DATA};  
  3. //Cursor cursor = managedQuery(uri, proj, null, null, null);  
  4. Cursor cursor = getContentResolver().query(uri, proj, nullnullnull);  
  5. cursor.moveToFirst();  
  6.     int columnIndex = cursor.getColumnIndex(filePathColumn[0]);  
  7.     String picturePath = cursor.getString(columnIndex);  
  8.     cursor.close();  
  9.     mImgPath = picturePath;  


cursor的结果为null,其他手机没有问题,网上查找原因,得到如下结论:

对于Android 4.4版本及以后,uri的形式发生了变化,此时如果要获取图像的路径,可以按照如下实现:

[java]   view plain  copy   在code上查看代码片 派生到我的代码片
  1. Uri selectedImage = data.getData();  
  2.  String[] filePathColumn = { MediaStore.Images.Media.DATA };  
  3.                            
  4.  Cursor cursor = getContentResolver().query(selectedImage,  
  5.     filePathColumn, nullnullnull);  
  6. if(cursor!=null)  
  7. {  
  8.     cursor.moveToFirst();  
  9.     int columnIndex = cursor.getColumnIndex(filePathColumn[0]);  
  10.     String picturePath = cursor.getString(columnIndex);  
  11.     cursor.close();  
  12.     mImgPath = picturePath;  
  13. }  
  14. else  
  15. {  
  16.     mImgPath = selectedImage.getPath();  
  17. }  

在此做一记录!

最后

以上就是沉静仙人掌为你收集整理的Android---相册getContentResolver().query结果为空指针(因为android版本引起)的全部内容,希望文章能够帮你解决Android---相册getContentResolver().query结果为空指针(因为android版本引起)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(22)

评论列表共有 0 条评论

立即
投稿
返回
顶部