错误:
private File createImageFile() throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES + "/Prokaton/Big");
File image = File.createTempFile(imageFileName, ".jpg", storageDir);
if (Build.VERSION.SDK_INT < 11)
mCurrentPhotoPath = RealPathUtil.getRealPathFromURI_BelowAPI11(this, Uri.fromFile(image));
// SDK >= 11 && SDK < 19
else if (Build.VERSION.SDK_INT < 19)
mCurrentPhotoPath = RealPathUtil.getRealPathFromURI_API11to18(this, Uri.fromFile(image));
// SDK > 19 (Android 4.4)
else
mCurrentPhotoPath = RealPathUtil.getRealPathFromURI_API19(this, Uri.fromFile(image));
...
}
@SuppressLint("NewApi")
public static String getRealPathFromURI_API19(Context context, Uri uri){
String filePath = "";
String wholeID = DocumentsContract.getDocumentId(uri);
// 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 = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{ id }, null);
int columnIndex = cursor.getColumnIndex(column[0]);
if (cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
cursor.close();
return filePath;
}
@SuppressLint("NewApi")
public static String getRealPathFromURI_API11to18(Context context, Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
String result = null;
CursorLoader cursorLoader = new CursorLoader(
context,
contentUri, proj, null, null, null);
Cursor cursor = cursorLoader.loadInBackground();
if(cursor != null){
int column_index =
cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
result = cursor.getString(column_index);
}
return result;
}
public static String getRealPathFromURI_BelowAPI11(Context context, Uri contentUri){
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index
= cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// 2. pick image only
intent.setType("image/*");
// 3. start activity
startActivityForResult(intent, 0);
尝试在方法中使用此代码(对所有API版本使用相同的代码)
希望它能帮到你
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(uri, proj, null, null, null);
if (cursor == null) {
result = uri.getPath();
} else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
result = cursor.getString(idx);
cursor.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
if (cursor != null) {
cursor.close();
}
}
return result;
因此,我使用Reformation将图像上传到我们的服务器,并使用gallery chooser选择图像。我试图获取图像的路径,因为uri。getPath()返回未找到的文件作为异常。我几乎看过关于这个主题的每一篇stackoverflow文章,但仍然没有答案。下面的代码与我在网上看到的所有代码都类似,它总是返回null,我不知道为什么。请帮忙
问题内容: 我输入的是一个字符串。如何获得最后的路径段(在我的情况下是id)? 这是我的输入URL: 我必须获得我尝试过的ID: 但这是行不通的,并且肯定有更好的方法可以做到这一点。 问题答案: 是您要寻找的: 或者
我想从URI中获得完整的文件路径。URI不是图像,而是音乐文件,但如果我像纵隔解决方案那样做,如果应用程序用户选择eg Astro作为浏览器,而不是音乐播放器,它就不会工作。我怎么解决这个?
我想从图库中选择一个图像,然后使用它将图像加载到ImageView项中。 但是图像没有以正确的方式旋转,所以我应该使用ExifInterface类,并且exif构造函数希望文件的路径是字符串,而不是URI。 为了将URI转换为字符串,我编写了以下方法: 问题从这里开始... 结果变量总是返回null。我尝试了stackoverflow中的许多解决方案,如下所示: 我试图用null值查询投影。仍然返
问题内容: 在我的应用程序中,我想使用文件夹中存在的资源 为了获得该路径,我使用了位于以下位置的这段代码: 显示的错误是: 如果我更改该代码: 变量absolutePath采用以下值: 为什么它指向目标路径?我该如何更改? 问题答案: 我的猜测是,绝对路径问题是由于maven POM目标中的outputDirectory引起的。在我的项目中,outputDirectory war / WEB-IN
问题内容: 方法request.getRequestURI()返回带有上下文路径的URI。 例如,如果一个应用程序的基本网址(即上下文路径是 MYAPP ),和我打电话了,它将返回。 有什么办法可以让我们只获得这部分,即没有上下文路径的URI? 问题答案: 如果您位于映射在前缀模式上的前contoller servlet内,则可以使用。 假设您的示例中的servlet映射到,则将返回该值,这将是典