public static String getMimeType(String url) { String extension = getExtension(url); if (!MimeTypeMap.getSingleton().hasExtension(extension)) return ""; String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); return TextUtils.isEmpty(mimeType) ? "" : mimeType; }
/** * 获取文件的MIME类型 */ public static String getMimeType(String pathOrUrl) { String ext = getExtension(pathOrUrl); MimeTypeMap map = MimeTypeMap.getSingleton(); String mimeType; if (map.hasExtension(ext)) { mimeType = map.getMimeTypeFromExtension(ext); } else { mimeType = "*/*"; } LogUtils.verbose(pathOrUrl + ": " + mimeType); return mimeType; }
@Test public void byDefaultThereShouldBeNoMapping() { assertFalse(MimeTypeMap.getSingleton().hasExtension(VIDEO_EXTENSION)); assertFalse(MimeTypeMap.getSingleton().hasExtension(IMAGE_EXTENSION)); }
@Test public void clearMappingsShouldRemoveAllMappings() { ShadowMimeTypeMap shadowMimeTypeMap = Shadows.shadowOf(MimeTypeMap.getSingleton()); shadowMimeTypeMap.addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); shadowMimeTypeMap.addExtensionMimeTypMapping(IMAGE_EXTENSION, IMAGE_MIMETYPE); shadowMimeTypeMap.clearMappings(); assertFalse(MimeTypeMap.getSingleton().hasExtension(VIDEO_EXTENSION)); assertFalse(MimeTypeMap.getSingleton().hasExtension(IMAGE_EXTENSION)); assertFalse(MimeTypeMap.getSingleton().hasMimeType(VIDEO_MIMETYPE)); assertFalse(MimeTypeMap.getSingleton().hasExtension(IMAGE_MIMETYPE)); }
@Test public void shouldResetStaticStateBetweenTests() throws Exception { assertFalse(MimeTypeMap.getSingleton().hasExtension(VIDEO_EXTENSION)); shadowOf(MimeTypeMap.getSingleton()).addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); }
@Test public void shouldResetStaticStateBetweenTests_anotherTime() throws Exception { assertFalse(MimeTypeMap.getSingleton().hasExtension(VIDEO_EXTENSION)); shadowOf(MimeTypeMap.getSingleton()).addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); }
@Test public void unknownExtensionShouldProvideNothing() { ShadowMimeTypeMap shadowMimeTypeMap = Shadows.shadowOf(MimeTypeMap.getSingleton()); shadowMimeTypeMap.addExtensionMimeTypMapping(VIDEO_EXTENSION, VIDEO_MIMETYPE); shadowMimeTypeMap.addExtensionMimeTypMapping(IMAGE_EXTENSION, IMAGE_MIMETYPE); assertFalse(MimeTypeMap.getSingleton().hasExtension("foo")); assertNull(MimeTypeMap.getSingleton().getMimeTypeFromExtension("foo")); }
@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)); }
Uri uri = Uri.fromFile(entry); Intent intent = new Intent(android.content.Intent.ACTION_VIEW); String mime = "*/*"; MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); if (mimeTypeMap.hasExtension( mimeTypeMap.getFileExtensionFromUrl(uri.toString()))) mime = mimeTypeMap.getMimeTypeFromExtension( mimeTypeMap.getFileExtensionFromUrl(uri.toString())); intent.setDataAndType(uri,mime); startActivity(intent);
/** * Get the {@link MediaType} of the file. * * @param fileName file name. * * @return {@link MediaType}, cannot be null. */ public static MediaType getFileMediaType(String fileName) { String extension = getUrlExtension(fileName); if (!MimeTypeMap.getSingleton().hasExtension(extension)) { return MediaType.APPLICATION_OCTET_STREAM; } String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); try { return MediaType.parseMediaType(mimeType); } catch (Exception e) { return MediaType.APPLICATION_OCTET_STREAM; } }
private void checkAndLoadFile( File currentFile) { String path = currentFile.getAbsolutePath(); String extension = Utility.getExtension(path); MimeTypeMap mimeMap = MimeTypeMap.getSingleton(); if(mimeMap.hasExtension(extension)) { String mimeType = mimeMap.getMimeTypeFromExtension(extension); Intent viewFile = new Intent(Intent.ACTION_VIEW); viewFile.setDataAndType(Uri.fromFile(currentFile), mimeType); PackageManager pm = getPackageManager(); List<ResolveInfo> apps = pm.queryIntentActivities(viewFile, PackageManager.MATCH_DEFAULT_ONLY); if (apps.size() > 0) startActivity(viewFile); //This video is supported and there are apps installed in this device to open the video else showAsNotSupported(); } else showAsNotSupported(); }
/** * 获取文件的MIME类型 */ public static String getMimeType(String pathOrUrl) { String ext = getExtension(pathOrUrl); MimeTypeMap map = MimeTypeMap.getSingleton(); String mimeType; if (map.hasExtension(ext)) { mimeType = map.getMimeTypeFromExtension(ext); } else { mimeType = "*/*"; } return mimeType; }
/** * 获取文件的MIME类型 */ public static String getMimeType(String pathOrUrl) { String ext = getExtension(pathOrUrl); MimeTypeMap map = MimeTypeMap.getSingleton(); String mimeType; if (map.hasExtension(ext)) { mimeType = map.getMimeTypeFromExtension(ext); } else { mimeType = "*/*"; } return mimeType; }