【问题标题】:Android - SEND Intent filter not workingAndroid - 发送意图过滤器不起作用
【发布时间】:2015-10-23 16:08:24
【问题描述】:

在我的 android 应用程序中,我有一个意图过滤器链接到我的 AndroidManifest.xml 中的一个活动,如下所示:

<activity
    android:name=".MainActivity"
    android:label="@string/name >
    <intent-filter>
        <action android:name="android.intent.action.SEND />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

据我了解,这应该将我的应用程序添加到我的浏览器 (Chrome) 中“共享...”部分下的应用程序列表,以便我的应用程序可以使用当前网页的 URL。此列表包含 Flipboard、Android Beam、Twitter、Keep、Google+ 等。

我找到了很多关于如何做到这一点的例子,他们都使用上面的代码。但是,由于某种原因,我的应用程序没有出现在该列表中。这可能是什么原因,我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: android google-chrome url android-intent browser


    【解决方案1】:

    您正确地包含了操作和类别,但您还需要包含mimeTypes,以便Intent 知道您要支持哪种类型的共享。尝试包括这两行以支持文本和图像共享:

    <data android:mimeType="text/plain" />
    <data android:mimeType="image/*" />
    

    像这样:

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

    如果您想从 Intent 检索 URL 以在您的应用中使用,那么您需要将此代码添加到 MainActivity 中的 onCreate() 方法中:

    String action = intent.getAction(); 
    if (action.equalsIgnoreCase(Intent.ACTION_SEND) && intent.hasExtra(Intent.EXTRA_TEXT)) { 
        String URL = intent.getStringExtra(Intent.EXTRA_TEXT);
    } 
    

    【讨论】:

    • 好的,这似乎可行,但是如何在我的应用中检索网站 URL?
    • @26hmkk 我已经更新了我的答案来帮助你。
    • 感谢您的帮助!
    • @26hmkk 这样行得通,您可以正确检索应用程序中的 URL?
    • @26hmkk 太棒了。没问题,很高兴为您提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多