所以我试图让用户使用我的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 :(得分:17)
我已多次使用过这个。最好的方法是:
Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, images/*");
startActivityForResult(mediaChooser, 1);
即使这不完全准确,它在我用过的所有内容中都运行良好。它将打开一个Gallery-esque活动,其中包含用户图库中每个图片/视频的缩略图列表。返回到onActivityResult()
的意图有一个额外的名为“DATA”的内容://所选媒体的URI。
编辑:oops,获取您想要在传递给onActivityResult()的Intent上调用 getData()的所选媒体的URI
答案 1 :(得分:2)
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...
}
}
}
酷?
答案 2 :(得分:1)
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
答案 3 :(得分:1)
试试这个
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);