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