深层链接无法打开新应用

时间:2015-08-21 06:19:07

标签: android deep-linking

我有两个应用程序。从第一个开始,我想通过深度链接启动第二个。它的工作原理但问题是第二个在第一个内部开始。我想在一个新的例子中开始第二个。

打开第二个应用的第一个应用的代码:

String uri = "deeplinkTestTom://token/123456";
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
            startActivity(intent);

第二个应用程序的清单:

 <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <data

                android:scheme="deeplinkTestTom" />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>
</application>

当我尝试从我的第一个应用程序(String uri = "facebook://facebook.com/inbox";)启动Facebook应用程序时,它会在新应用程序中启动Facebook,而不是在我的第一个应用程序中启动。所以我想在我的第二个应用程序的清单中有些东西是错误的,但我找不到什么。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

我相信你在谈论新的Task而不是“新应用”。

阅读Tasks and Back Stack

您需要使用Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)在新的Activity中开始Task

对于您的情况,请使用

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);