使用Intent从第三方应用程序获取数据

时间:2019-01-10 12:06:34

标签: android xamarin

我正在尝试从YouTube应用程序共享按钮获取视频的字符串URL。到目前为止,我可以检索从youtube发送到我的应用的操作和Intent的类型,但是我无法弄清楚如何获取数据。 问题是,当我尝试获取Extras时,我需要youtube发送的密钥才能检索字符串。有什么方法可以检索数据?

        var myintent = Intent;
        string action = myintent.Action;
        string type = myintent.Type;
        string youtubeString = myintent.Extras.GetString("key")

1 个答案:

答案 0 :(得分:1)

在YouTube应用的测试共享中,我获得了“主题和文字”,其中“主题”是视频的描述,“文字”是URL。如果您调试并破坏以便可以检查bundle,则会看到其中包含以下内容:

{Bundle[{android.intent.extra.SUBJECT=Watch "Preview: Can One Girl Save Humanity? | Season 1 | THE PASSAGE" on YouTube, android.intent.extra.TEXT=https://youtu.be/5TkqFuiHwFg}]}

因此,您需要使用android.intent.extra.SUBJECT键和android.intent.extra.TEXT,但是这些是Android本机键。您将要使用Xamarin.Android等效项,它们是Intent.ExtraSubjectIntent.ExtraText

因此,在处理OnCreate的活动的Intent方法中,您要做的就是:

var bundle = Intent.Extras;
var url = bundle?.GetString(Intent.ExtraText);
var subject = bundle?.GetString(Intent.ExtraSubject);

请注意,对捆绑软件的无效检查是因为捆绑软件在应用程序首次启动时将为null,并且仅当从YouTube共享视频时才为非null。

相关问题