我正在尝试构建一个简单的Android应用,将Youtube网址发送到特定的媒体服务器。在Android方面,需要通过用户按下Youtube应用程序(或浏览器)内的视频上的共享按钮来激活它。但是,在这种情况下,我很难弄清楚intent过滤器的工作原理。
以下代码,例如,当我从youtube(或几乎任何其他内容)分享时,我的应用程序会显示在应用列表中。
<activity
android:name=".DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName=".MyActivity" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MyActivity" />
</activity>
但是,当我用包含方案的任何内容替换元素时,例如:
<data android:mimeType="text/plain" android:scheme="https" />
该应用不再出现在共享列表中。我尝试了所有组合,似乎没有任何效果。任何建议(一般关于意图过滤器,或更具体的Youtube)?
编辑: 在使用Intent Interceptor进行调查后,我发现链接(例如来自Youtube或浏览器)的DATA字段发送到NULL。其他类型的意图(例如,文件)似乎将此设置为文件的URL。假设过滤方案/主机/路径作用于意图的DATA部分,那里没有要过滤的数据,因此在这方面不能过滤链接。任何人都可以确认或澄清这个吗?