我有一个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上的共享链接或其他地方使用上面的方案时,链接来自我们的网站,它无法识别已安装的应用程序。
答案 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>