BroadcastReceiver不从外部链接接收Intent

时间:2015-06-23 16:35:28

标签: android broadcastreceiver intentfilter

我有一个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>

我想从广播接收器打开这样的链接。

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

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

这不起作用。现在,当我点击Facebook上的共享链接或其他地方使用上面的方案时,链接来自我们的网站,它无法识别已安装的应用程序。

1 个答案:

答案 0 :(得分:3)

如果您想通过自定义网址方案打开您的应用,则需要声明活动的方案,而不是广播接收方。尝试这样的事情:

<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>