J'essaie de tester les URL de liens profonds Android via adb pour lancer mon application

Quand je tape la commande dans la bad:

./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp

J'obtiens cette erreur:

Starting: Intent { act=android.intent.action.VIEW dat=example://gizmos pkg=com.myapp }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=example://gizmos flg=0x10000000 pkg=com.myapp }

Mais quand je tape la commande dans la bad:

./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp.activity.DeepLinkActivity

Tout fonctionne bien et j'obtiens le message et je peux voir l'activité de lancement sur le téléphone:

Starting: Intent { act=android.intent.action.VIEW dat=example://gizmos cmp=com.myapp.activity.DeepLinkActivity }
Status: timeout
Activity: com.myapp.activity.DrawerActivity
Complete

Ma question est pourquoi n'ai-je besoin pour obtenir le chemin complet de mon activité, et pas seulement nom du package? Parce que lorsque les applications ou le navigateur va essayer de lien profond qu'ils ne seront pas invoquer l'activité de mon application.

C'est mon AndroidManifest.xml

<activity
        android:name=".activity.DeepLinkActivity">
        <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:scheme="example"
                  android:host="gizmos" />

        </intent-filter>
</activity>

source d'informationauteur user3773337