棒棒糖android中的文件路径总是返回null

本教程将介绍棒棒糖android中的文件路径总是返回null的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

问题描述

这是我从内部存储(图库)获取图像时的代码.在棒棒糖文件路径中返回始终为空.

if (requestCode == PICK_IMAGE)  {
  if(resultCode == RESULT_OK){
//image successfully picked
// launching upload activity
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
columnindex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
file_path = cursor.getString(columnindex);
Log.d(getClass().getName(), "file_path"+file_path);
fileUri = Uri.parse("file://" + file_path);
cursor.close();
launchUploadActivity(true, PICK_IMAGE);
  }else if (resultCode == RESULT_CANCELED) {
// user cancelled recording
Toast.makeText(getApplicationContext(),"User cancelled image  selection", Toast.LENGTH_SHORT).show();
  } else {
// failed to record video
Toast.makeText(getApplicationContext(),"Sorry! failed to pick image", Toast.LENGTH_SHORT).show();
  }

推荐答案

谢谢大家,我找到了解决方案.

 Uri selectedImage = data.getData();
String wholeID = DocumentsContract.getDocumentId(selectedImage);

// Split at colon, use second item in the array
String id = wholeID.split(":")[1];

String[] column = { MediaStore.Images.Media.DATA };
// where id is equal to 
String sel = MediaStore.Images.Media._ID + "=?";

Cursor cursor = getContentResolver().
  query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
  column, sel, new String[]{ id }, null);

String filePath = "";

int columnIndex = cursor.getColumnIndex(column[0]);

if (cursor.moveToFirst()) {
 filePath = cursor.getString(columnIndex);
}
cursor.close();
setImageFromIntent(filePath);

好了关于棒棒糖android中的文件路径总是返回null的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。

0
没有账号?注册  忘记密码?