使用 Android 存储访问框架获取文件扩展名
Get FIle extension using Android Storage Access Framework
我在 android 中使用存储访问框架来选择图像并在我的应用程序中上传。在将这些图像上传到我的服务器之前,我还处理了这些图像(调整大小)。
但是,在SAF返回的URI中,没有附加扩展名,我不知道如何获得文件的扩展名。我需要区分 png 和 jpeg。我怎样才能做到这一点?
从 SAF 返回的示例 uri - content://com.android.providers.media.documents/document/image%3A245309
我的代码是这样的
if (resultData != null) {
final ClipData clipData = resultData.getClipData();
int takeFlags = resultData.getFlags();
takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
ArrayList<Uri> uris = new ArrayList<Uri>();
if(clipData != null){
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
Uri dataUri = item.getUri();
if (dataUri != null) {
uris.add(dataUri);
Log.d(TAG, "File URI : " + dataUri.toString());
}
}
}else{
Uri dataUri = resultData.getData();
if (dataUri != null) {
uris.add(dataUri);
}
}
processFiles(uris);
}
I need to differentiate between png and jpeg. How can i achieve that ?
Call getType()
on a ContentResolver
,传入Uri
。这将 return 与内容关联的 MIME 类型,例如 image/png
.
使用 Simple Storage 更容易:
MediaFile file = new MediaFile(context, uri);
String extension = file.getExtension();
我在 android 中使用存储访问框架来选择图像并在我的应用程序中上传。在将这些图像上传到我的服务器之前,我还处理了这些图像(调整大小)。
但是,在SAF返回的URI中,没有附加扩展名,我不知道如何获得文件的扩展名。我需要区分 png 和 jpeg。我怎样才能做到这一点?
从 SAF 返回的示例 uri - content://com.android.providers.media.documents/document/image%3A245309
我的代码是这样的
if (resultData != null) {
final ClipData clipData = resultData.getClipData();
int takeFlags = resultData.getFlags();
takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
ArrayList<Uri> uris = new ArrayList<Uri>();
if(clipData != null){
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
Uri dataUri = item.getUri();
if (dataUri != null) {
uris.add(dataUri);
Log.d(TAG, "File URI : " + dataUri.toString());
}
}
}else{
Uri dataUri = resultData.getData();
if (dataUri != null) {
uris.add(dataUri);
}
}
processFiles(uris);
}
I need to differentiate between png and jpeg. How can i achieve that ?
Call getType()
on a ContentResolver
,传入Uri
。这将 return 与内容关联的 MIME 类型,例如 image/png
.
使用 Simple Storage 更容易:
MediaFile file = new MediaFile(context, uri);
String extension = file.getExtension();