BroadcastReceiver 不接收来自外部链接的 Intents

BroadcastReceiver doesn't receive Intents from outer links

我有一个 BroadcastReceiver,它具有如下意图过滤器:

    <receiver
        android:name="com.mytestpackage.ExternalLinksBroadcastReceiver"
        android:exported="true"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>

            <data
                android:host="test.me"
                android:path="/static/"
                android:scheme="http"/>
        </intent-filter>
    </receiver>

我想从广播接收器中打开 link 个这样的文件。

http://test.me/static/someone-1111"

接收器的OnReceive 我从Intent 中提取用户id 并尝试在应用程序中显示相应的配置文件。

这行不通。现在,当我使用上面的方案在 Facebook 或其他地方单击共享 link 并且 link 来自我们的网站时,它无法识别已安装的应用程序。

如果您想通过自定义 url 方案打开您的应用程序,您需要声明 activity 方案,而不是广播接收器。尝试这样的事情:

<activity
  android:name=".MainActivity"
  android:label="@string/app_name">
  <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"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
            android:host="test.me"
            android:path="/static/"
            android:scheme="http"/>
  </intent-filter>
</activity>