昨天测试帅哥说他手机选择图库崩溃了,这是一个上传头像的功能,相信很多应用都有这个功能,于是我就把手机拿过来打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. windows 搭建 angular2 开发环境--白纸新手可以参考一下

    初次接触angular,感觉接触一项新的东西真的是很艰难,自从听我朋友说起angular,就对这个东西产生了一些兴趣,就开始研究,经过艰辛的各种查资料各种头痛,终于是把这环境给搭上了·最起码是可以运行 ...

  2. Java虚拟机 - 多态性实现机制

    [深入Java虚拟机]之五:多态性实现机制——静态分派与动态分派 方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际 ...

  3. Hbuilder Webview调试+逍遥安卓模拟器

    软件版本: HBuilder : 9.0.2.201803061935 逍遥安卓:5.2.2 webview相当于一个浏览器的tab,通过在webview中修改,模拟器端会实时刷新效果.从而达到调试手 ...

  4. 在pycharm中进行ORM操作

    打开manage.py, 复制 import..... if.......os.....  导入django,开启django, 导入app中的models  orm操作 import os if _ ...

  5. 地区picker 各选择器,优劣分析

    移动端选择器picker有很多,各大ui组件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等.但是,我发现他们都有各种各样的问题.这次的地区选择,需要地区的省份+市+经纬 ...

  6. HTML(5)基础

    1.html常用标签 <pre>...</pre>:标识预定义文本 <a>是anchor的缩写,<a>标签定义锚点和超链接,<a>常与hre ...

  7. 【代码笔记】iOS-自定义选择框(高底强弱)

    一,效果图 二,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewControl ...

  8. web界面 之 登录 (初稿)

    web登录一般注意以下几点: 1)拥有元素:用户名,密码(密码字符显示与隐藏功能),登录按钮,忘记密码链接(忘记用户名链接),注册链接 2)用户体验: •页面显示,光标默认停在第一个输入框 利用htm ...

  9. art-template模板应用

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. 2018-10-23 23:29:54 clanguage

    2018-10-23   23:29:54 clanguage 在 32 位环境以及 Win64 环境下的运行结果为: short=2, int=4, long=4, char=1 在 64 位 Li ...