本当に細かい挙動の話です。
Firebase Dynamic Links(FDL)が起動されるパターンは以下があります
- アプリ未インストール時、FDLによってGoogle Playからインストールされてから起動される場合
- アプリがインストールされている時、FDLからアプリを直接起動する場合
1. アプリ未インストール時、FDLによってGoogle Playからインストールされてから起動される場合
activity.intent.dataString は空になっており FDLのFirebaseDynamicLinks.getInstance().getDynamicLink(activity.intent)
からでないとリンクが取得できない。
Google PlayやLauncherなどから起動されてくるので当たり前といえば当たり前なのですが、そうなります。
ちなみにFDLはどのようにリンクを取得してくるかというと、プロセス間通信によって、Google Play Servicesから取得しているようです。
2. アプリがインストールされている時、FDLからアプリを起動する場合
activity.intent.dataStringにもリンクのURLが入っていて、FDLからも取得可能です
そのためリンクを取得するだけであれば、わざわざFDLを使う必要はないです。
しかし、FDLではリンクにパラメーターamv
をつけて、リンクを開くことができるアプリの最小バージョンの versionCode
などを設定でき、そのための情報などが渡ってきたりするので、その情報が欲しい場合はFDLから情報を取得する必要があります。
https://developers.google.com/android/reference/com/google/firebase/dynamiclinks/PendingDynamicLinkData