【问题标题】:How to restrict for display only local video, when picking video from gallery like in WhatsApp Messenger从 WhatsApp Messenger 等图库中选择视频时,如何限制仅显示本地视频
【发布时间】:2016-07-01 13:09:18
【问题描述】:

您好,我使用以下代码从图库中挑选视频

Intent intent = new Intent();
  intent.setType("video/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
             intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent = Intent.createChooser(intent, context.getString(R.string.choose_video));
            startActivity(activity, fragment, intent, REQUEST_VIDEO_FROM_GALLERY);

 private static void startActivity(Activity activity, Fragment fragment, Intent intent, int requestCode) {
        if (fragment != null) {
            fragment.startActivityForResult(intent, requestCode);
        } else {
            activity.startActivityForResult(intent, requestCode);
        }
    }

但在打开图库时,它不仅会在 WhatsApp Messenger 中显示本地视频。在 WhatsApp Messenger 中打开图库时,我需要限制仅显示本地视频。请给我一些建议。

我也尝试过 EXTRA_LOCAL_ONLY,就像下面提到的链接一样。它显示本地视频,但也显示其他文档。

Android : Why Intent.EXTRA_LOCAL_ONLY shows Google Photos

任何人都可以建议我在使用意图从图库中选择视频时显示本地视频的想法吗?提前致谢。

【问题讨论】:

    标签: android android-intent video


    【解决方案1】:

    无法使用ACTION_GET_CONTENT 请求仅限本地的内容。 EXTRA_LOCAL_ONLY 是给ACTION_OPEN_DOCUMENT 的,即使在那里,它也是一个请求,而不是一个需求。

    EXTRA_LOCAL_ONLY 现在已记录为可与ACTION_GET_CONTENT 一起使用。但是,不能保证所有 ACTION_GET_CONTENT 实现都会遵守它。

    欢迎您直接在MediaStore 查询视频并呈现您自己的选择UI。 AFAIK,MediaStore 应该只包含设备本身可用的视频。

    【讨论】:

    • 我同意你的观点,这只是一个请求,但根据ACTION_GET_CONTENT 的文档,调用者可以选择指定EXTRA_LOCAL_ONLY 以请求启动的内容选择器仅返回代表本地数据的结果设备上可用。 developer.android.com/reference/android/content/…
    • @MisaghEmamverdi:自从我写下这个答案以来,他们可能已经在四年内更新了文档。感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2015-12-04
    • 2022-09-24
    相关资源
    最近更新 更多