从 Uri Android Lollipop 获取路径名
get Path name from Uri Android Lollipop
棒棒糖版。
我使用这个 code 从 Uri 确定文件路径。工作正常,但如果我从下载的应用程序中选择文件 - getRealPathFromURI_API19 功能对我不起作用。例如,这种情况下的整个 Id 等于 /document/4,我的应用程序崩溃了。
好的,我对此函数进行了一些更改,"id" Uri“/document/4”现在等于 4,但函数 returns 为空。
是否可以从任何应用程序获取所选图像的文件路径?
我需要 ExifInterface 的文件路径。
Works fine
仅针对您尝试过的少数设备,针对您尝试过的一个文件源 (MediaStore
)。
Is it possible get file path for choosed image from any app?
没有。 A Uri
is not a File
。任何 Uri
都不需要转换为文件路径,因为 Uri
可能不代表文件,更不用说您的应用有权访问的文件了。对您来说,Uri
是另一个应用程序拥有的内容的不透明地址,就像 URL 是 Web 服务器拥有的内容的不透明地址一样。而且,正如您无法神奇地将 URL 转换为您可以使用的文件路径一样,您也无法神奇地将 Uri
转换为您可以使用的文件路径。
I need file path for ExifInterface.
实际上,您需要读取或可能写入与 Uri
关联的 EXIF headers,您认为它指向包含这些 headers 的图像。虽然 ExifInterface
允许您这样做,但它是为应用程序设计的,可以使用它们自己的图像,而不是来自 third-party 个应用程序的图像。
您的选择是:
在Uri
上使用ContentResolver
和openInputStream()
,将图片复制到本地,之后就可以使用ExifInterface
使用一些其他更灵活的 EXIF 代码。例如,the EXIF classes from the AOSP Mms app 可以从 InputStream
中读取 EXIF headers
棒棒糖版。
我使用这个 code 从 Uri 确定文件路径。工作正常,但如果我从下载的应用程序中选择文件 - getRealPathFromURI_API19 功能对我不起作用。例如,这种情况下的整个 Id 等于 /document/4,我的应用程序崩溃了。
好的,我对此函数进行了一些更改,"id" Uri“/document/4”现在等于 4,但函数 returns 为空。
是否可以从任何应用程序获取所选图像的文件路径? 我需要 ExifInterface 的文件路径。
Works fine
仅针对您尝试过的少数设备,针对您尝试过的一个文件源 (MediaStore
)。
Is it possible get file path for choosed image from any app?
没有。 A Uri
is not a File
。任何 Uri
都不需要转换为文件路径,因为 Uri
可能不代表文件,更不用说您的应用有权访问的文件了。对您来说,Uri
是另一个应用程序拥有的内容的不透明地址,就像 URL 是 Web 服务器拥有的内容的不透明地址一样。而且,正如您无法神奇地将 URL 转换为您可以使用的文件路径一样,您也无法神奇地将 Uri
转换为您可以使用的文件路径。
I need file path for ExifInterface.
实际上,您需要读取或可能写入与 Uri
关联的 EXIF headers,您认为它指向包含这些 headers 的图像。虽然 ExifInterface
允许您这样做,但它是为应用程序设计的,可以使用它们自己的图像,而不是来自 third-party 个应用程序的图像。
您的选择是:
在
Uri
上使用ContentResolver
和openInputStream()
,将图片复制到本地,之后就可以使用ExifInterface
使用一些其他更灵活的 EXIF 代码。例如,the EXIF classes from the AOSP Mms app 可以从
InputStream
中读取 EXIF headers