如何使用意图过滤器捕获仅限于特定URL的Android共享意图?

10

我可以使用以下意图过滤器将我的应用程序链接到“分享页面”功能:

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

但我想更进一步,将筛选器限制在带有特定URL的意图中,比如YouTube视频的URL。我尝试过类似这样的代码,但它并不起作用:

<intent-filter>
  <action android:name="android.intent.action.SEND" />
  <category android:name="android.intent.category.DEFAULT" />
  <data
    android:mimeType="text/plain"
    android:scheme="http"
    android:host="m.youtube.com"
  />

有什么建议吗?


我想做相同的事情。看起来这是不可能的。 - tasomaniac
1个回答

6
但我想进一步将过滤器限制在包含特定URL的意图中,例如YouTube视频的URL。
按照您的写法,您所要求的对我来说毫无意义。
也许你真正想表达的是:
但是我想再进一步,将过滤器限制在包含特定URL的BODY extra的ACTION_SEND请求中。
如果是这样,很抱歉,这是不可能的。
或者,也许你真正想表达的是:
但是我想再进一步,将过滤器限制为从随机软件发出的ACTION_SEND请求,在此时用户恰好按下“分享”,例如共享正在播放的YouTube应用程序中的当前YouTube视频。
如果是这种情况,很抱歉,这是不可能的。
如果以上两种猜测都没有真正击中您所要求的,请考虑编辑您的问题。

谢谢,我现在明白这是不可能的。 - Marek Stój
@kilaka:这是不可能的,因为你无法做到。欢迎您向Android开源项目贡献补丁以提供此功能。 - CommonsWare
2
@kilaka:“这就是host属性的全部意义”-- ACTION_SEND不使用host属性。你要分享的东西放在Intent extra中,而不是Uri中。 - CommonsWare
@CommonsWare 我在文档中看到了。谢谢。http://developer.android.com/reference/android/content/Intent.html#ACTION_SEND。这很愚蠢。为什么被发送的内容的来源不在数据(URI)中呢?CommonsWare,你觉得呢?我应该为此提出一个功能请求吗? - AlikElzin-kilaka
@kilaka:“为什么发送的内容源不在数据(URI)中?”--因为你很少分享看起来像“Uri”的东西。例如,我可能会分享这个评论,但它并不像一个“Uri”。 - CommonsWare
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接