user4813855
user4813855

Reputation:

Detect open application from deep link

I am using from deep link to my app. How can I detect that my app opened form deep link or from icon of application?

Upvotes: 2

Views: 4574

Answers (2)

Pavel Shorokhov
Pavel Shorokhov

Reputation: 4984

In method onCreate(savedInstanceState: Bundle?) check condition:

intent?.action == Intent.ACTION_VIEW && intent?.data != null

Upvotes: 2

Pawan Singh Chauhan
Pawan Singh Chauhan

Reputation: 253

Put into your manifest.xml filter for URL you want to use in the deep link.

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_view_http_gizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
    </intent-filter>
    <intent-filter android:label="@string/filter_view_example_gizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="gizmos" />
    </intent-filter>
</activity>

Inside your activity, you can check data like this:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    String action = intent.getAction();
    // using action u can detect 
    Uri data = intent.getData();
}

Upvotes: 3

Related Questions