【发布时间】:2012-06-24 13:57:30
【问题描述】:
平板电脑的内置 YouTube 应用具有共享选项。例如:我在 YouTube 应用中观看视频,然后点击按钮分享。蓝牙、Googlemail 和 Dropbox 出现在我面前。 我想知道如何在此处列出我的应用?我的应用有哪个意图过滤器?那么我如何获取视频网址? 任何的想法? 谢谢。
【问题讨论】:
标签: android video android-intent youtube share
平板电脑的内置 YouTube 应用具有共享选项。例如:我在 YouTube 应用中观看视频,然后点击按钮分享。蓝牙、Googlemail 和 Dropbox 出现在我面前。 我想知道如何在此处列出我的应用?我的应用有哪个意图过滤器?那么我如何获取视频网址? 任何的想法? 谢谢。
【问题讨论】:
标签: android video android-intent youtube share
这对我有用。 将此意图过滤器添加到您的清单文件中,以使您的应用程序出现在 youtube 应用程序的共享列表中。
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="www.youtube.com" android:mimeType="text/*" />
</intent-filter>
然后要在您的活动中检索它,请使用:
Bundle extras = getIntent().getExtras();
String value1 = extras.getString(Intent.EXTRA_TEXT);
你来了!
【讨论】:
android:scheme="http" 添加到<data 与较新版本的android。 @PedroD
intent-filter,您可以将任何文本分享到您的活动中。我认为这是因为缺少方案,但添加 https 方案会从 IntentChooser 中完全删除 myApp。
我玩了一会儿,以这个解决方案结束:
<intent-filter android:label="My YT Handler">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:host="youtu.be" android:mimeType="text/*" />
</intent-filter>
【讨论】:
看起来 Youtube 已经改变了分享意图,所以对我来说唯一有效的解决方案是我从 android Telegram manifest 复制的那个。 解决方案已在 Marshamallow 6.0.1 和 Lolipop 5.1.1 上测试并运行。
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="*/*"/>
</intent-filter>
【讨论】: