如何从相机获取MimeType?

时间:2014-10-10 16:26:21

标签: android uri android-sdcard android-contentresolver

我正在继续我的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,但问题没有解决。

如何解决这个问题是否还有其他解决问题的方法。请帮助我的朋友

1 个答案:

答案 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