【问题标题】:Android intent ACTION_VIEW with share options带有共享选项的 Android 意图 ACTION_VIEW
【发布时间】:2016-11-08 16:04:34
【问题描述】:

我正在使用带有 ACTION_VIEW 的意图在 android 上查看照片,但在查看其他图片(特别是共享)时,它不会以画廊的任何选项打开。有谁知道如何让它有这些选项?

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(location, mimeType);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

给了我这样的查看器:

但只是在画廊中查看,我得到了所有这些东西:

这些问题相似,但没有答案

Intent Action_View for image opens gallery with no delete option

Android image intent : sharing/editing options

有趣的是,这两个问题都在谈论这些选项已经可用......所以我不确定我做错了什么。

【问题讨论】:

    标签: android android-intent photo-gallery


    【解决方案1】:

    但在查看其他图片(特别是共享)时,它不会以画廊的任何选项打开

    大约有 20 亿台 Android 设备,由数千种设备型号组成。许多这些设备型号将附带支持您的Intent 结构的 1+ 个活动,并且许多实际设备将有其他支持它的应用程序,由用户安装。没有人必须提供“分享”选项。

    有人知道如何让它有这些选项吗?

    严格来说,你不能。

    那些图像查看应用程序是由开发人员编写的,这些开发人员可以为所欲为。也许有不同的活动供内部使用与ACTION_VIEW。也许它是相同的活动,但它们仅在内部达到活动时提供这些选项(与通过ACTION_VIEW 来自外部应用程序相比)。也许他们只共享某些Uri 方案或 MIME 类型。也许他们不分享图片是因为今天是星期二。

    同样,根据用户拥有和选择使用的图像查看应用程序,不同设备上的行为会有所不同。

    如果您想要“分享”选项,将其放入您的应用中。如果您希望该共享选项出现在显示图像的屏幕上,在您的应用中显示图像。现在,您将所有这些都委托给第三方应用程序,而这些应用程序不必做您想做的事情。

    【讨论】:

    • 是的,我很确定这就是答案。我想也许有一面旗帜或我遗漏的东西,我应该带着意图发送。或者用这两个动作发送意图,或者我不知道......无论如何,只是想检查一下。感谢您的及时回复!总是有帮助的
    • @Josh:“我想可能有一个标志或其他东西”——没有一个是 Android SDK 的一部分。某些图像查看应用程序完全有可能提供控制此功能的附加功能,但这取决于这些应用程序,我不知道这方面的任何标准。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多