我正在尝试获取内容URI的文件路径。URL如下所示:content://com.android.providers.downloads.documents/document/31
游标对象不是null,但cursor.getString(column_index)返回null。
列索引始终为0。
public static String getPath(Context context, Uri uri) throws URISyntaxException {
if ("content".equalsIgnoreCase(uri.getScheme())) {
String[] projection = { "data"};
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow( "_data");
if (cursor.moveToFirst()) {
// Method returns here with null value
return cursor.getString(column_index);
}
} catch (Exception e) {
// Eat it
}
}
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
编辑:内容URI是从文件管理器返回的,因此它应该表示实际的文件。
public void filePicker(View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"),
FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
// Potentially direct the user to the Market with a Dialog
Toast.makeText(this, "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
}
我正在尝试获取内容URI的文件路径
不要求content://
Uri
指向文件,更不用说您可以访问的文件了。如果要访问文件中的数据,请使用ContentResolver
和openInputStream()
或openOutputStream()
。
我使用意图action_get_content调用startActivityForResult。有些应用程序返回给我的数据包含以下URI: 内容://media/external/images/media/18122 不知道是图像还是视频或者一些自定义内容。如何使用ContentResolver从这个URI获取实际的文件名或内容标题?
从外部应用程序,我想这样做,以访问文件提供商的内部存储上的文件: 是我在其他(fileprovider)应用程序的清单xml中指定的权限字符串。 和: 该文件存在于内部FP的存储器中(files)/path/to/file下。txt 但我总是得到IllegalArgumentException no root等。这不是默认的Android FileProvider的用途吗?我是否误解了它的用途?例
我正在尝试使用隐式意图操作_SEND将其他应用程序中的图像共享到我的应用程序中。 当从chrome浏览器共享搜索图像时,应用程序接收到一个内容URI,如下所示: 如何从这种类型的内容URI获取文件路径?所有其他应用,比如Facebook、谷歌都在这么做。我使用FileChooser获取其他类型内容URI的文件路径(例如,从Gallery)。 试着到处寻找,但没有太多帮助。有人能建议如何使用这些内容
我下面有一个方法:
我想从图库中选择一个图像,然后使用它将图像加载到ImageView项中。 但是图像没有以正确的方式旋转,所以我应该使用ExifInterface类,并且exif构造函数希望文件的路径是字符串,而不是URI。 为了将URI转换为字符串,我编写了以下方法: 问题从这里开始... 结果变量总是返回null。我尝试了stackoverflow中的许多解决方案,如下所示: 我试图用null值查询投影。仍然返
我试图从Xamarin Android中的intent chooser获得真正的路径,它在除Android 10之外的所有Android版本中都能正常工作。在Android10中,内容uri如下 content://com.android.providers.downloads.documents/document/msf:180