Глубокая ссылка Android сначала открывает активность запуска (а не глубоко связанную деятельность)

Глубокая ссылка Android сначала открывает действие средства запуска (не глубоко связанная операция), а затем глубоко связанная операция, как объявлено в файле манифеста. Я выполнил все шаги, упомянутые здесь.

а именно Манифест содержит

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_title_viewgizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
        <!-- Accepts URIs that begin with "example://gizmos”
        <data android:scheme="example"
              android:host="gizmos" />
        -->
    </intent-filter>
</activity>

и глубоко связанная деятельность содержит

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();
}

и некоторый другой специфический для деятельности код.

2 ответа

Просто удали android:label="@string/filter_title_viewgizmos" от намеренного фильтра. Ваш код начнет работать.

Благодарю.

У меня была такая же проблема, и в моем случае это была просто проблема копирования и вставки. убедитесь, что фильтры намерений ваших глубоких ссылок ТОЛЬКО существуют при правильной активности в манифесте. если у вас есть 2 одинаковых фильтра в двух разных действиях, то откроется первое (логически ваше основное действие будет первым)

Другие вопросы по тегам