Android Handling Deep Links


Deep links are URLs that take users directly to specific content in your app. You can set up deep links by adding intent filters and extracting data from incoming intents to drive users to the right screen in your app.


<data> AttributeDetails
schemeThe scheme part of a URI (case-sensitive). Examples: http, https, ftp
hostThe host part of a URI (case-sensitive). Examples:,
portThe port part of a URI. Examples: 80, 443
pathThe path part of a URI. Must begin with /. Examples: /, /about
pathPrefixA prefix for the path part of a URI. Examples: /item, /article
pathPatternA pattern to match for the path part of a URI. Examples: /item/.*, /article/[0-9]*
mimeTypeA mime type to match. Examples: image/jpeg, audio/*


The <intent-filter>

This combination of <action> and <category> elements is what tells the Android system that a specific Activity should be launched when the user clicks on a link in another application.

    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data ... />


Multiple <data> tags

The set of deep links that your <intent-filter> supports is the cross-product of all the <data> elements that you define in that intent-filter. The multiple domain, multiple path, and multiple scheme examples demonstrate this.