首页 > 解决方案 > 捕获特定的文本共享意图

问题描述

我正在开发一个从 Instagram 下载图像的 Android 项目。我的问题是我想捕获简单的文本共享意图,或者如果可能的话,捕获由我的应用程序中包含任何 Instagram URL 的任何应用程序共享的意图。这是我在清单中所做的:

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.SEND" />
        <action android:name="dev.anirban.instagramdownloader.MainActivity" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="*instagram.com"
            android:scheme="https" />
        <data
            android:host="*instagram.com"
            android:scheme="http" />
    </intent-filter>
</activity>

例如,我想从这些类型的应用程序中捕获共享意图:

从浏览器网址 在此处输入图像描述

但是,当我单击共享/发送到选项时,IntentChooser不显示我的应用程序,如下所示:

在此处输入图像描述 在此处输入图像描述

我安装了我的应用程序,为了测试它,我运行了以下 shareIntent 代码,这运行良好,并在列表中弹出了我的应用程序IntentChooser

String url = "https://www.instagram.com/p/CNxiok1FBP4/"; //Test URL
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

我希望我的应用程序在IntentChooser有人尝试分享文本时显示出来,或者如果文本与作为主机的任何 instagram.com URL 匹配会更好。我怎样才能做到这一点?

标签: javaandroidandroid-intentintentfilter

解决方案


推荐阅读