I am trying to pass parameters to deep links in Android and that is not working.
I have specified a hostName variable in the app/build.gradle file to distinguish between UAT and production URLs. This hostName variable is referenced in AndroidManifest.xml like so:
<activity
android:name=".ui.MyActivity"
android:theme="@style/MyTheme"
android:configChanges="orientation"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- deep links for home page. -->
<data
android:scheme="https"
android:host="${hostName}"
android:pathPrefix="/login.jsp?signup=true" />
</intent-filter>
</activity>
I am trying to use adb to test for deep links like so:
adb.exe shell am start -W -a android.intent.action.VIEW -d "https://www.mywebsite.co.in/login.jsp?signup=true" com.myapp.ui.MyActivity
The error I get is:
Starting: Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... pkg=com.myapp.android.alpha }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... flg=0x10000000 pkg=com.myapp.android.alpha }
I have read through a number of similar questions here on SO and all of them suggest escaping the special characters. But that has not worked in this case.
Any insights on resolving this will be most welcome.
The android:pathPrefix is invalid in your AndroidManifest.xml.
It should only contain the path element, not the query:
android:pathPrefix="/login.jsp"
The query string ?signup=true is not part of the path. You cannot filter on query strings.
User contributions licensed under CC BY-SA 3.0