ContentResolver cR = context.getContentResolver(); MimeTypeMap mime = MimeTypeMap.getSingleton(); String type = mime.getExtensionFromMimeType(cR.getType(uri));
public boolean checkType(ContentResolver resolver, Uri uri) { MimeTypeMap map = MimeTypeMap.getSingleton(); if (uri == null) { return false; } String type = map.getExtensionFromMimeType(resolver.getType(uri)); String path = null; // lazy load the path and prevent resolve for multiple times boolean pathParsed = false; for (String extension : mExtensions) { if (extension.equals(type)) { return true; } if (!pathParsed) { // we only resolve the path for one time path = PhotoMetadataUtils.getPath(resolver, uri); if (!TextUtils.isEmpty(path)) { path = path.toLowerCase(Locale.US); } pathParsed = true; } if (path != null && path.endsWith(extension)) { return true; } } return false; } }
/** * To find out the extension of required object in given uri * Solution by http://stackoverflow.com/a/36514823/1171484 */ public static String getMimeType(Activity context, Uri uri) { String extension; //Check uri format to avoid null if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { //If scheme is a content extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(context.getContentResolver().getType(uri)); if (TextUtils.isEmpty(extension)) { extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString()); } } else { //If scheme is a File //This will replace white spaces with %20 and also other special characters. This will avoid returning null values on file // name with spaces and special characters. extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString()); if (TextUtils.isEmpty(extension)) { extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(context.getContentResolver().getType(uri)); } } if (TextUtils.isEmpty(extension)) { extension = getMimeTypeByFileName(TUriParse.getFileWithUri(uri, context).getName()); } return extension; }
private static Uri makeLocalCopy(Context ctxt, ContentResolver resolver, Uri document) throws IOException { DocumentFileCompat docFile=buildDocFileForUri(ctxt, document); Uri result=null; if (docFile.getName()!=null) { String ext= MimeTypeMap.getSingleton().getExtensionFromMimeType(docFile.getType()); if (ext!=null) { ext="."+ext; } File f=File.createTempFile("cw_", ext, ctxt.getFilesDir()); docFile.copyTo(f); result=Uri.fromFile(f); } return(result); }
MediaType mediaType = responseBody.contentType(); if (mediaType != null) { extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(mediaType.toString());
BitmapFactory.decodeStream(pipe.open(), null, options); pipe.close(); String extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(options.outMimeType); UniFile dst = dir.subFile(null != extension ? filename + "." + extension : filename); if (null == dst) {
BitmapFactory.decodeStream(pipe.open(), null, options); pipe.close(); extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(options.outMimeType); if (extension != null) { extension = '.' + extension;
@Test public void unknownMimeTypeShouldProvideNothing() { ShadowMimeTypeMap shadowMimeTypeMap = Shadows.shadowOf(MimeTypeMap.getSingleton()); shadowMimeTypeMap.addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); shadowMimeTypeMap.addExtensionMimeTypMapping(IMAGE_EXTENSION, IMAGE_MIMETYPE); assertFalse(MimeTypeMap.getSingleton().hasMimeType("foo/bar")); assertNull(MimeTypeMap.getSingleton().getExtensionFromMimeType("foo/bar")); } }
@Test public void addingMappingShouldWorkCorrectly() { ShadowMimeTypeMap shadowMimeTypeMap = Shadows.shadowOf(MimeTypeMap.getSingleton()); shadowMimeTypeMap.addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); shadowMimeTypeMap.addExtensionMimeTypMapping(IMAGE_EXTENSION, IMAGE_MIMETYPE); assertTrue(MimeTypeMap.getSingleton().hasExtension(VIDEO_EXTENSION)); assertTrue(MimeTypeMap.getSingleton().hasExtension(IMAGE_EXTENSION)); assertTrue(MimeTypeMap.getSingleton().hasMimeType(VIDEO_MIMETYPE)); assertTrue(MimeTypeMap.getSingleton().hasMimeType(IMAGE_MIMETYPE)); assertEquals(IMAGE_EXTENSION, MimeTypeMap.getSingleton().getExtensionFromMimeType(IMAGE_MIMETYPE)); assertEquals(VIDEO_EXTENSION, MimeTypeMap.getSingleton().getExtensionFromMimeType(VIDEO_MIMETYPE)); assertEquals(IMAGE_MIMETYPE, MimeTypeMap.getSingleton().getMimeTypeFromExtension(IMAGE_EXTENSION)); assertEquals(VIDEO_MIMETYPE, MimeTypeMap.getSingleton().getMimeTypeFromExtension(VIDEO_EXTENSION)); }
/** * To find out the extension of required object in given uri * Solution by http://stackoverflow.com/a/36514823/1171484 */ private static String getMimeType(@NonNull Context context, @NonNull Uri uri) { String extension; //Check uri format to avoid null if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) { //If scheme is a content final MimeTypeMap mime = MimeTypeMap.getSingleton(); extension = mime.getExtensionFromMimeType(context.getContentResolver().getType(uri)); } else { //If scheme is a File //This will replace white spaces with %20 and also other special characters. This will avoid returning null values on file name with spaces and special characters. extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString()); } return extension; }
public Uri getURI() { String extension = mime.getExtensionFromMimeType(getType()); final String authority = ((ShareApplication) reactContext.getApplicationContext()).getFileProviderAuthority();
if(this.isBase64File(uri)) { String type = uri.getSchemeSpecificPart().substring(0, uri.getSchemeSpecificPart().indexOf(";")); String extension = mime.getExtensionFromMimeType(type); String encodedImg = uri.getSchemeSpecificPart().substring(uri.getSchemeSpecificPart().indexOf(";base64,") + 8); try {
/** * Get file name from uri. */ private String getDisplayNameForUri(Uri uri) { String displayName; if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { displayName = uri.getLastPathSegment(); } else { displayName = getDisplayNameFromContentResolver(uri); if (displayName == null) { // last chance to have a name displayName = uri.getLastPathSegment().replaceAll("\\s", ""); } // Add best possible extension int index = displayName.lastIndexOf("."); if (index == -1 || MimeTypeMap.getSingleton() .getMimeTypeFromExtension(displayName.substring(index + 1)) == null) { String mimeType = this.getContentResolver().getType(uri); String extension = MimeTypeMap.getSingleton() .getExtensionFromMimeType(mimeType); if (extension != null) { displayName += "." + extension; } } } // Replace path separator characters to avoid inconsistent paths return displayName != null ? displayName.replaceAll("/", "-") : null; }
/** * Create a random file based on mimeType. * * @param file file. * * @return file object. */ public static File createRandomFile(MultipartFile file) { String extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(file.getContentType().toString()); if (StringUtils.isEmpty(extension)) { extension = MimeTypeMap.getFileExtensionFromUrl(file.getFilename()); } String uuid = UUID.randomUUID().toString(); return new File(App.getInstance().getRootDir(), uuid + "." + extension); }
public String getMIMETypeFromUri(Uri fileUri) { try { ContentResolver cR = context.getContentResolver(); MimeTypeMap mime = MimeTypeMap.getSingleton(); return mime.getExtensionFromMimeType(cR.getType(fileUri)); }catch(Exception e){ return "no mime found"; } }
/** * Add file extension to name, but only if exact MIME type mapping exists. */ public static String addExtension(String mimeType, String name) { final String extension = MimeTypeMap.getSingleton() .getExtensionFromMimeType(mimeType); if (extension != null) { return name + "." + extension; } return name; }
/** * Add file extension to name, but only if exact MIME type mapping exists. */ private static String addExtension(String mimeType, String name) { final String extension = MimeTypeMap.getSingleton() .getExtensionFromMimeType(mimeType); if (extension != null) { return name + "." + extension; } return name; } }
@NonNull public static String getMimeType(@NonNull final Context context, @NonNull final Uri uri) { final ContentResolver cR = context.getContentResolver(); final MimeTypeMap mime = MimeTypeMap.getSingleton(); String type = mime.getExtensionFromMimeType(cR.getType(uri)); if (type == null) { type = "*/*"; } return type; }
/** @return empty string if no extension found */ @NonNull public static String mimeToFileExtension(String mimeType) { if (isEmptyMime(mimeType)) return ""; String extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(mimeType); return StringUtils.isEmpty(extension) ? "" : extension; }
private String getFileExtension(Uri uri){ ContentResolver contentResolver = getContentResolver(); MimeTypeMap mime = MimeTypeMap.getSingleton(); return mime.getExtensionFromMimeType(contentResolver.getType(uri)); }