2014-10-10 41 views
0

我正在进行我的Surfaceview相机活动,我想从本地路径的Uri获取MimeTye文件,同时调用图库可以从Content Uri获取MimeType,但是从相机加载无法获取MimeType那些试图将localPath从文件转换成开放的内容为下面的尝试:如何从相机获取MimeType?

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; 
      } 
     } 
    } 

follwed链接:http://android-er.blogspot.in/2011/04/convert-uri-to-real-path-format.html但问题并没有解决。

如何解决这个有没有其他的解决方案来解决issue.Is有请帮我的朋友

+0

一定要仔细阅读http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html#CONTENT_TYPE – Nepster 2015-03-06 10:40:47

回答

1

,如果你有URI,那么你可以得到的MIME类型一样

Uri uri = Uri.fromFile(file); 
ContentResolver cR = context.getContentResolver(); 
String mime = cR.getType(uri); 

或尝试

// url =文件路径或任何适合你想要的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