昨天测试帅哥说他手机选择图库崩溃了,这是一个上传头像的功能,相信很多应用都有这个功能,于是我就把手机拿过来打log看了下返回的路径 为null,在网上搜索了下解决方案,现在把解决方案记录下:

这是在onActivityResult方法中执行的,

  1. if (data == null) {
  2. return;
  3. }
  4. uri = data.getData();
  5. uri = geturi(data);//解决方案
  6. String[] proj = { MediaStore.Images.Media.DATA };
  7. Cursor cursor = managedQuery(uri, proj, null, null, null);
  8. if(cursor!=null){
  9. int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
  10. cursor.moveToFirst();
  11. String path = cursor.getString(column_index);// 图片在的路径
  12. Intent intent3 = new Intent(this, SYClipActivity.class);
  13. intent3.putExtra("path", path);
  14. startActivityForResult(intent3, IMAGE_COMPLETE);
  15. }
  1. /**
  2. * 解决小米手机上获取图片路径为null的情况
  3. * @param intent
  4. * @return
  5. */
  6. public Uri geturi(android.content.Intent intent) {
  7. Uri uri = intent.getData();
  8. String type = intent.getType();
  9. if (uri.getScheme().equals("file") && (type.contains("image/"))) {
  10. String path = uri.getEncodedPath();
  11. if (path != null) {
  12. path = Uri.decode(path);
  13. ContentResolver cr = this.getContentResolver();
  14. StringBuffer buff = new StringBuffer();
  15. buff.append("(").append(Images.ImageColumns.DATA).append("=")
  16. .append("'" + path + "'").append(")");
  17. Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI,
  18. new String[] { Images.ImageColumns._ID },
  19. buff.toString(), null, null);
  20. int index = 0;
  21. for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {
  22. index = cur.getColumnIndex(Images.ImageColumns._ID);
  23. // set _id value
  24. index = cur.getInt(index);
  25. }
  26. if (index == 0) {
  27. // do nothing
  28. } else {
  29. Uri uri_temp = Uri
  30. .parse("content://media/external/images/media/"
  31. + index);
  32. if (uri_temp != null) {
  33. uri = uri_temp;
  34. }
  35. }
  36. }
  37. }
  38. return uri;
  39. }

在此记录下,

android 解决小米手机上选择照片路径为null情况的更多相关文章

  1. Android 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi

    Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: Installation failed with message Faile ...

  2. 解决小米手机不能运行Android Studio程序的问题

    转载自:解决小米手机不能运行Android Studio程序的问题 问题描述 Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: ...

  3. 解决小米手机USB安装apk时AS报错:INSTALL_FAILED_USER_RESTRICTED

    今天,直接用AS在小米手机上运行安装的时候总是报错:INSTALL_FAILED_USER_RESTRICTED,于是乎,通过以下方式解决: 在开发者选项将USB安装打开,然后,哈,解决了.记录一下.

  4. [RN] 解决小米手机安装应用报:INSTALL_FAILED_USER_RESTRICTED问题

    解决小米手机安装应用报:INSTALL_FAILED_USER_RESTRICTED问题 https://blog.csdn.net/u013023845/article/details/821082 ...

  5. 利用exif.js解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  6. 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi

    问题描述 Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: Installation failed with message  ...

  7. 解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  8. Android配置----小米手机通过wifi连接ADB调试Android应用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. Android 解决双卡双待手机解析短信异常

    开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...

随机推荐

  1. LINQ to Objects系列(3)深入理解Lambda表达式

    Lambda表达式是学好LINQ很重要的一个知识点,后面的LINQ查询中会大量地使用到Lambda表达式.这篇文章从以下几点进行总结. 1,Lambda表达式的前世今生 2,Lambda表达式的实际运 ...

  2. C++ auto 关键字的使用

    C++98 auto 早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期,这是多余的,因为就算不使用auto声明,变量依旧拥有自动的生命期: ...

  3. HDU4185(KB10-G 二分图最大匹配)

    Oil Skimming Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  4. PHP实现大转盘抽奖算法

    流程: 1.拼装奖项数组,2.计算概率,3.返回中奖情况 代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数 function get_gift(){ //拼装奖项数组 // 奖 ...

  5. 使用PHPExcel实现数据批量导出为excel表格

    首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单 ...

  6. Windows上PostGIS(压缩版)安装

    PostGIS安装 1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/win ...

  7. KCF跟踪算法 入门详解

    一.算法介绍 KCF全称为Kernel Correlation Filter 核相关滤波算法.是在2014年由Joao F. Henriques, Rui Caseiro, Pedro Martins ...

  8. git cherry-pick 用法

    1.当合并代码冲突特别多的时候,有时候只想提交自己分支的代码.这个时候使用cherry-pick 可以实现 1)首先使用 git log --oneline -n 找到最近自己分支的提交记录,n表示提 ...

  9. sql求两表的并集、交集、非交集、差集、结果集排序

    create table A( id ,) Not null primary key, name ) not null default(''), ) INSERT INTO [A]([name]) V ...

  10. Appium环境搭建python篇(mac系统)

    1.安装Appium 通过终端安装: 安装nodejs,下载地址:https://nodejs.org/download/,安装完成后打开终端输入node -v,检查是否安装成功 安装npm,打开终端 ...