[英]I can't get the Uri from a file
我想從文件路徑獲取Uri。 這是文件路徑:
File path = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"pic/picture.jpeg");
我以這種方式嘗試了uri:
Uri uri = Uri.fromFile(path);
但我也嘗試做一個日志: Log.i("URI", "Uri dell' img " + uri + ":");
uri仍然是文件路徑! 例如:“ content:// ...”,而不是“ file:// sdcard ....”
我怎樣才能得到正確的尿? 謝謝
public File getFileFromContentUri(final Uri uri)
{
if (uri == null || !(uri.getScheme().equals("content") || uri.toString().contains("file://"))) return null;
if (uri.getScheme().equals("content")) {
final String[] columns = new String[] {MediaStore.MediaColumns.DATA};
final Cursor cursor = getContentResolver().query(uri, columns, null, null, null);
if (cursor == null || cursor.getCount() == 0) return null;
cursor.moveToFirst();
final String path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));
if (path != null) return new File(path);
else return null;
}
else if (uri.toString().contains("file://")) {
return new File(uri.getPath());
}
return null;
}
使用方法Uri.parse(path.getAbsolutePath());
此方法將為您提供文件路徑的Uri
//write to this
Uri photoUri = MediaStore.Images.Media.getContentUri("external");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.