因此,我试图允许用户使用此处描述的方法使用我的Android应用程序选择特定的媒体:在我的Android应用中访问图片应用程序

它效果很好,除了我似乎只能在视频或照片之间进行选择以呈现用户,而不是同时介绍用户。有没有一个很好的方法来做到这一点:

startActivityForresult(new Intent(Intent.action_pick,android.provider.mediastore.images.media.internal_content_uri),select_image);

谢谢!

有帮助吗?

解决方案

我已经使用过几次了。最好的方法是:

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

即使这不是完全准确的,它在我使用的所有内容中都可以正常运行。它将打开画廊式的活动,其中包含用户画廊中每个图片/视频的缩略图列表。返回的意图 onActivityResult() 有一个额外的称为“数据”,它将是所选媒体的内容:// URI。

编辑:糟糕,要将URI获取到您实际想致电的选定媒体 getData() 关于传递给OnActivityResult()的意图

其他提示

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

        }
    }

凉爽的?

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

尝试这个

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top