小弟新人,问个问题,求各位大神帮忙解决

熊业飞 2016-06-27 10:44:31
各位,小弟我在一个app上面注册的时候需要调用系统图库,直接贴代码
/******* 上传头像 ********/
@OnClick({ R.id.uploadHeadImg, R.id.doctorHeadCiv })
private void uploadHeadImg(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
startActivityForResult(intent, Constant.PHOTO_HEAD);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constant.PHOTO_HEAD:
if (data != null) {
Uri uri = data.getData();
if (headBitmap != null) {
headBitmap.recycle();
}
uploadHeadImg.setVisibility(View.INVISIBLE);
doctorHeadCiv.setVisibility(View.VISIBLE);
headBitmap = PictureUtil.decodeUriAsBitmap(mContext, uri);
doctorHeadCiv.setImageBitmap(headBitmap);
// 头像参数
String path = PictureUtil.getRealPathFromURI(mContext, uri);
headPicFile = new File(path);
} else {
ToastUtil.debug(mContext, "图片数据为空");
}
break;
其他手机没有任何问题,就小米手机,这里的path空了,下面是那个util类的封装
// 通过URI获取图片路径
public static String getRealPathFromURI(Context context, Uri contentUri) {
String res = null;
// String[] proj = { MediaColumns.DATA };
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(contentUri, proj,
null, null, null);
if (cursor.moveToFirst()) {
// int column_index = cursor
// .getColumnIndexOrThrow(MediaColumns.DATA);
int column_index = cursor
.getColumnIndexOrThrow(proj[0]);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}


在线跪等
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyfuci 2016-06-27
  • 打赏
  • 举报
回复
只能理解成MIUI的问题了。path是那个URI?
开发者_android 2016-06-27
  • 打赏
  • 举报
回复
应该不是手机的问题,是系统版本的问题。 一种path是/storage/....,另一种是content://..... 要做不同处理。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧