【问题标题】:Android Intent.ACTION_SEND YoutubeAndroid Intent.ACTION_SEND Youtube
【发布时间】:2012-06-15 21:17:49
【问题描述】:

我想使用我的应用程序在 YouTube 上上传视频。我正在使用此代码:

uploadIntent.setDataAndType(Uri.fromFile(f), "video/quicktime");
startActivity(Intent.createChooser(uploadIntent, "Upload"));

但当我希望它仅显示 YouTube 选项时,它也会显示蓝牙、gmail 等选项。如何只显示 YouTube 选项?

【问题讨论】:

  • 这是一个与上面不同的问题。在 Gmail 上发现了一个类似的问题,但我只寻找 youtube 选项 thanx。
  • 这两个问题都涉及尝试通过Intent 在 Android 上的 YouTube 上上传视频。我看不出有什么区别。如果您正在寻找不同的东西,请详细说明。
  • 如果用户不想上传到 YouTube 怎么办?如果用户想上传到另一个视频共享服务怎么办?还是像 Dropbox 这样的文件共享服务?为什么您觉得您需要控制允许用户上传此视频的位置? commonsware.com/blog/2011/06/28/share-where-the-user-wants.html

标签: android android-intent


【解决方案1】:

我误解了你在问什么。您似乎可以上传,但希望将其限制为仅限 YouTube。要实现这一点,您不应该使用Intent.createChooser,因为如果您只想显示一个选项,那么选择是没有意义的。相反,您可以使用 Intent.setClassName 指定 YouTube 的包和类。

当您选择 YouTube 时,只需检查在当前代码中传回的Intents,即可发现正确的值。您需要将 Intent.createChooser 的返回值从 PackageManger.queryIntentActivites 设置为局部变量,在后面的行中设置断点,并在 YouTube Intent 中断时检查其内容。

【讨论】:

  • 首先,Intent.createChooser() 的返回值不会是所选应用程序的Intent,因为此时选择器还没有出现。其次,任何人都不应使用setClassName() 来引用第三方代码,因为您使用的任何值都是一次重构,以免出错。
  • @CommonsWare 啊,你是对的。好的,忘记使用Intent.createChooser()。也许改用PackageManager.queryIntentActivities。至于你的第二点......是的,这可能是个坏主意,但如果开发人员坚持使用Intent 强制仅使用 YouTube 上传,那几乎是唯一的选择。您可以通过使用queryIntentActivities 来保护自己,如果您愿意,可以退回到仅使用选择器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 2018-03-09
  • 2011-06-20
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
相关资源
最近更新 更多