Android 深度链接未打开正确的活动

Android 深度链接未打开正确的活动,android,firebase,firebase-dynamic-links,Android,Firebase,Firebase Dynamic Links,我有两个活动-MainActivity和DeepLinkActivity。MainActivity生成一个链接。当我从sms中单击DeepLink时,我希望DeepLinkActivity会打开,但MainActivity总是打开 清单文件如下所示: <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat" > &l

我有两个活动-MainActivity和DeepLinkActivity。MainActivity生成一个链接。当我从sms中单击DeepLink时,我希望DeepLinkActivity会打开,但MainActivity总是打开

清单文件如下所示:

    <activity
        android:name=".MainActivity"
        android:theme="@style/Theme.AppCompat"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".DeepLinkActivity"
        android:label="@string/app_name"
        android:theme="@style/ThemeOverlay.MyDialogActivity">

        <!-- [START deep_link_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="blessd.mobi" android:scheme="http"/>
            <data android:host="blessd.mobi" android:scheme="https"/>
        </intent-filter>
        <!-- [END deep_link_filter] -->
    </activity>
深度链接活动

public class DeepLinkActivity extends AppCompatActivity implements
    View.OnClickListener {

    private static final String TAG = DeepLinkActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.deep_link_activity);
        Log.d(TAG,"Deep Activity" );

        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    // Get deep link from result (may be null if no link is found)
                    Uri deepLink = null;
                    if (pendingDynamicLinkData != null) {
                        deepLink = pendingDynamicLinkData.getLink();
                    }...
public类DeepLinkActivity扩展了appcompativity实现
View.OnClickListener{
私有静态最终字符串标记=DeepLinkActivity.class.getSimpleName();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.deep_link_活动);
Log.d(标签“深度活动”);
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(此,新的OnSuccessListener(){
@凌驾
成功时的公共无效(PendingDynamicLinkData PendingDynamicLinkData){
//从结果获取深度链接(如果未找到链接,则可能为空)
urideeplink=null;
如果(PendingDynamicClinkData!=null){
deepLink=pendingDynamicLinkData.getLink();
}...

谢谢

您必须在您的意向过滤器上添加附加数据

           <data
            android:host=""
            android:path=""
            android:scheme="" />

在清单活动中,您必须具有筛选器:

<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="yourlinkhost.com"
                    android:scheme="http" />
                <data
                    android:host="yourlinkhost.com"
                    android:scheme="https" />

            </intent-filter>


它应该可以处理你的链接。可能你的链接有错误的主机方案-当我的链接有错误的主机时,我遇到了这样的问题。但是你的解决方案-看起来很好,同样我对我来说也很好。

你点击的链接是什么?链接是blesd.page.link。这似乎是问题所在,我的意图中的链接是错误的。thanks链接确实不正确,应该是在firebase控制台-动态链接中创建的链接
builder.scheme(getString(R.string.config_scheme)) // "http"
            .authority("your url") // your host
            .appendPath(getString(R.string.path)) // "your path"
            .appendQueryParameter(QUERY_PARAM, data)
<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="yourlinkhost.com"
                    android:scheme="http" />
                <data
                    android:host="yourlinkhost.com"
                    android:scheme="https" />

            </intent-filter>