我正在继续我的surfaceview相机活动,因为我想从本地路径的Uri获取 MimeTye 文件,而调用图库可以从内容Uri获取MimeType但是从相机加载时可以没有得到MimeType,试图将localpath从文件转换为Content Uri,尝试使用以下方法:
public static Uri getImageContentUri(Context context, File imageFile) {
String filePath = imageFile.getAbsolutePath();
Cursor cursor = context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.Media._ID },
MediaStore.Images.Media.DATA + "=? ",
new String[] { filePath }, null);
if (cursor != null && cursor.moveToFirst()) {
int id = cursor.getInt(cursor
.getColumnIndex(MediaStore.MediaColumns._ID));
// Uri baseUri = Uri.parse(stringUri);
return Uri.withAppendedPath(uploadImageURI, "" + id);
} else {
if (imageFile.exists()) {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, filePath);
return context.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
} else {
return null;
}
}
}
关注链接:http://android-er.blogspot.in/2011/04/convert-uri-to-real-path-format.html,但问题没有解决。
如何解决这个问题是否还有其他解决问题的方法。请帮助我的朋友
答案 0 :(得分:1)
如果您有URI,那么您可以获得类似
的mimetype
Uri uri = Uri.fromFile(file);
ContentResolver cR = context.getContentResolver();
String mime = cR.getType(uri);
或尝试
// url =文件路径或您想要的任何合适的网址。
public static String getMimeType(String url)
{
String type = null;
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
if (extension != null) {
MimeTypeMap mime = MimeTypeMap.getSingleton();
type = mime.getMimeTypeFromExtension(extension);
}
return type;
}
有关详细信息see these Answe rs