2009-12-07 134 views
9

所以我想,让用户挑选的媒体的特定部分与我的使用这里所描述的方法Android应用程序: Access pictures from Pictures app in my android app访问视频和照片+

它的伟大工程,除了事实上,我似乎只能选择视频或照片来向用户展示,而不是同时进行。是否与要做到这一点的好办法:

startActivityForResult(新 意向(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);

谢谢!

+0

要雪上加霜 - 当我使用的方法与视频 - 它不会真正让用户挑选的媒体 - 它只是播放它时,他们选择它 - 它不会显示缩略图。我要重写Gallery吗?有没有一种方法可以调出图库,然后让它返回选定媒体的Uri? – FunnyLookinHat 2009-12-09 06:09:37

回答

17

我已经使用了这几次。最好的办法是这样的:

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT); 
//comma-separated MIME types 
mediaChooser.setType("video/*, images/*"); 
startActivityForResult(mediaChooser, 1); 

即使这不完全准确的,它已经在我在用它一切正常这将打开一个画廊式的活动与缩略图列表。用户画廊中的每个图片/视频。返回的意图onActivityResult()有一个额外的名为“数据”,这将是一个内容://URI到选定的媒体。

编辑:哎呀,得到的URI你真的想调用的getData()上被传递给onActivityResult()

+2

Robert - 出于某种原因,每当我使用以下行时,我都会显示一个空的选取器: mediaChooser.setType(“video/*,images/*”); 我也试过这个没有运气...... mediaChooser.setType(“video/*,image/*”); 然而,每一个单独工作正常...即 mediaChooser.setType(“video/*”); mediaChooser.setType(“image/*”); 你能粘贴一个确切的代码片段吗? **** 编辑 - 看起来像这个不工作了发布2.0版 – FunnyLookinHat 2010-07-19 21:59:49

+3

嗨! 我使用的是Android 1.6,它不适用!只有图像或只有视频是好的。任何想法? – Karoly 2011-06-23 15:03:09

+1

不适用于2.3 – 2011-07-30 19:32:14

1

Kivy的意图所选择的媒体 - 最简单的方法是创建一个意图选择的介质,其限制视频:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
pickMedia.setType("video/*"); 
startActivityForResult(pickMedia,12345); 

注 - 12345是你的应用程序需要监听的请求回调,这样你需要的地方,您可以发送您收到任何信息的整数。

然后,您还需要有同样的活动监听的信息发送从这一意图回:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 12345) { 
      if (resultCode == Activity.RESULT_OK) { 
       Uri selectedVideoLocation = data.getData(); 

       // Do something with the data... 
      } 

     } 
    } 

酷?

+1

问题是关于访问视频和照片 - 而不仅仅是视频。你给的答案只关于视频。 – 2011-07-30 19:34:46

+0

不幸的是,你不能在Android 2.0以上 - mediaChooser.setType(“video/*,images/*”)的伪造方法;将无法工作,除非您创建自己的选择器活动来扫描媒体并将其返回到选取器屏幕 - 最好的方法是让用户在视频图像之间进行选择。 – FunnyLookinHat 2011-11-06 21:32:57

+0

不知道他们在4.2.x中做了什么,但选择多个MIME类型似乎工作得很好:) – 2013-04-18 04:09:41

1
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(intent, 1); 
1

试试这个

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("*/*"); 
startActivityForResult(intent, 101);