I have a problem trying to launch my application from the browser using my own scheme.
Code is as follow:
Manifest file:
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:exported="false">
<intent-filter>
<data android:scheme="allplayer" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Html file:
<html>
<head>
</head>
<body>
<a href="allplayer://site.com">Test link</a>
</body>
</html>
If I click on the link, my application wont start. I did a lot of researches, but couldn't find an answer.
If I change allplayer with http everything works fine.
From this link, I learnt that it is not recommended to use your own schemes.
Does that mean your own schemes wont work?
The person here is using his own scheme, and from his feedback it seems that it is working.
Am I missing something?
It took me 6 hours to figure out the problem. Somehow setting the exported to false caused all the problem:
android:exported="false"
. When I set it to true, it worked like a charm.Funny because I put it there in the first place to avoid the
Exported activity does not require permission
warning. Setting it back to true, brought back the warning, but it is working now.Solution is below. Hope it will help others save time.