【问题标题】:Does not see my app when choosing to share link/text选择共享链接/文本时看不到我的应用
【发布时间】:2013-09-20 22:03:53
【问题描述】:

我正在尝试将内容分享到我的应用中。我的Manifest.xml 中有intent-filter

        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="image/*" />
            <data android:mimeType="video/*" />
            <data android:mimeType="text/*" />
        </intent-filter>

我可以将视频和照片分享到我的应用中,但由于某种原因,当我尝试从浏览器中的 URL 选项卡分享链接时,我没有看到我的应用列出。这是为什么呢?

【问题讨论】:

  • 什么浏览器,在什么设备上?
  • 从清单中发布更多 XML,您可能没有正确声明它。
  • @CommonsWare 我使用的是 4.12 Galaxy Nexus,所以它仍然是旧的 android 浏览器,而不是 chrome。克里斯托弗·佩里:但是视频和图像仍然有效 D:
  • 尝试一下text/plain 而不是text/*,看看是否有帮助。或者,尝试删除图像和视频。我肯定使用text/plain 作为 4.1-vintage Galaxy Nexus 上唯一的 MIME 类型,没有问题,从浏览器应用程序中获取 URL。
  • @CommonsWare 指定 text/plain 有效。我不确定为什么会这样。请将其发布为答案,以便我可以接受,以防其他人想知道。

标签: java android android-intent share


【解决方案1】:

简答:使用text/plain 而不是text/*

更长的答案:我从来没有完全理解通配符在&lt;intent-filter&gt;s 中何时何地起作用,更不用说当人们尝试在Intent 上使用带有setType()setDataAndType() 的通配符时。因此,当您得到意外的Intent 分辨率时,可以尝试的一件事是尝试去掉通配符,如果您并不严格需要它。

在发送方,您可以use FLAG_DEBUG_INTENT_RESOLUTION 尝试找出无法正常工作的原因,但当发送方不是您自己的代码时,这无济于事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多