hzycy 2016-06-11 12:54 采纳率: 0%
浏览 1705

在android 5.5和6.0上面获取图片路径问题

String []imgs1={MediaStore.Images.Media.DATA};//将图片URI转换成存储路径

            Cursor cursor = getContentResolver().query(uri, imgs1, null, null, null); 





          if(cursor.moveToFirst()){
             //最后根据索引值获取图片路径
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);


            path = cursor.getString(column_index);
            save();
          }


          cursor.close();

在模拟器和4.4 5.1 版本都可以正常运行,在6.0和5.5报错

  • 写回答

2条回答 默认 最新

  • 恋恋西风 2016-06-11 15:47
    关注

    好像只有在小米手机上,cursor可能为空吧需要处理一下,其它的5.0,是没有问题的,6.0没有测试过;
    /**
    * 解决小米手机上获取图片路径为null的情况
    * @param intent
    * @return
    */
    public Uri getImageUrl(Intent intent) {
    Uri uri = intent.getData();
    String type = intent.getType();
    if (uri.getScheme().equals("file") && (type.contains("image/"))) {
    String path = uri.getEncodedPath();
    if (path != null) {
    path = Uri.decode(path);
    ContentResolver cr = this.getContentResolver();
    StringBuffer buff = new StringBuffer();
    buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=")
    .append("'" + path + "'").append(")");
    Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    new String[] { MediaStore.Images.ImageColumns._ID },
    buff.toString(), null, null);
    int index = 0;
    for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {
    index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID);
    // set _id value
    index = cur.getInt(index);
    }
    if (index == 0) {
    // do nothing
    } else {
    Uri uri_temp = Uri
    .parse("content://media/external/images/media/"
    + index);
    if (uri_temp != null) {
    uri = uri_temp;
    }
    }
    }
    }
    return uri;
    }

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站