ben adb komutunu yazdığınızda: Ben yazarkenbenim app başlatmak için adb aracılığıyla android derin bağlantı URL'ler sınamak çalışıyorum
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 }
Ama:
./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp
bu hatayı alıyorum adb komut:
./adb shell am start -W -a android.intent.action.VIEW -d "example:gizmos" com.myapp.activity.DeepLinkActivity
Her şey gayet iyi çalışıyor ve ben mesajı almak ve telefonda etkinlik başlatmak görebilirsiniz:
Starting: Intent { act=android.intent.action.VIEW dat=example://gizmos cmp=com.myapp.activity.DeepLinkActivity }
Status: timeout
Activity: com.myapp.activity.DrawerActivity
Complete
Benim sorum, yalnızca paket adı değil, yalnızca etkinliğimin tam yolunu bulmamın nedeni nedir? Çünkü harici uygulamalar veya tarayıcı derin bağlantıya geçmeye çalıştıklarında uygulamamdaki etkinliği çağırmayacaklar.
Bu
benim AndroidManifest.xml Aktivitenize tam yolunu belirtmeniz gerekmez<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>