Когда я набираю команду в adb:
./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp
Я получаю эту ошибку:
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 }
Но когда я набираю команду в adb:
./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp.activity.DeepLinkActivity
Все работает нормально, и я получаю сообщение, и я вижу запуск активности на телефоне:
Starting: Intent { act=android.intent.action.VIEW dat=example://gizmos cmp=com.myapp.activity.DeepLinkActivity }
Status: timeout
Activity: com.myapp.activity.DrawerActivity
Complete
Мой вопрос, почему мне нужно получить полный путь к моей деятельности, а не только имя пакета? Потому что, когда внешние приложения или браузер попытаются использовать глубокую ссылку, они не будут вызывать активность в моем приложении.
Это мой 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>