Bra*_*bin 77 android uri mime-types
我有一个用画廊和相机获得的Uris列表.这些Uris是这样的:content://media/external/images/media/94.我怎么能得到它的mime类型?
Kar*_*iya 159
你可以试试
ContentResolver cR = context.getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getExtensionFromMimeType(cR.getType(uri));
Run Code Online (Sandbox Code Playgroud)
编辑:
mime.getExtensionFromMimeType(cR.getType(uri))
Run Code Online (Sandbox Code Playgroud)
返回 - >"jpeg"
cR.getType(uri);
Run Code Online (Sandbox Code Playgroud)
返回预期值"image/jpeg".
Aar*_*ron 30
此方法返回文件的扩展名(jpg,png,pdf,epub等..).
public static String getMimeType(Context context, 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;
}
Run Code Online (Sandbox Code Playgroud)
Bha*_*ani 10
对Content Uri.
ContentResolver cr = context.getContentResolver();
mimeType = cr.getType(contentUri);
Run Code Online (Sandbox Code Playgroud)
对File Uri.
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(fileUri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
Run Code Online (Sandbox Code Playgroud)
在这两方面,工程Content以及File.
public String getMimeType(Context context, Uri uri) {
String mimeType = null;
if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
ContentResolver cr = context.getContentResolver();
mimeType = cr.getType(uri);
} else {
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
}
return mimeType;
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
String type = mime.getExtensionFromMimeType(cR.getType(uri));
Run Code Online (Sandbox Code Playgroud)
做这个:
String type = cR.getType(uri);
Run Code Online (Sandbox Code Playgroud)
你会得到这个:image/jpeg.
| 归档时间: |
|
| 查看次数: |
50528 次 |
| 最近记录: |