Можно ли отследить происхождение глубокой ссылки в приложении? В моем проекте я успешно выполняю глубокие ссылки из браузера в свое приложение, выполняя то, что мне нужно сделать, а затем хочу отправить его обратно в браузер. Тем не менее, вызов finish()
не работает, потому что по какой-то причине мой домашний экран - это активность в стеке между моим браузером (где я нажал на глубокую ссылку) и моим приложением, поэтому я в итоге просто возвращаюсь на свой домашний экран телефона.
Я думал о том, чтобы как-то идентифицировать «абонента» глубокой ссылки. Есть ли способ сделать это, не передавая, скажем, пользовательский агент в параметрах запроса глубокой ссылки?
Где я сейчас нахожусь, выглядит следующим образом:
var browser = "com.android.chrome"
var intent = packageManager.getLaunchIntentForPackage(browser)
startActivity(intent)
Но, очевидно, мне нужно знать название пакета браузера, из которого они вышли.
(Или, если кто-то знает, почему моя глубокая ссылка может идти [браузер -> домашний экран -> приложение] вместо [browser -> app] это также было бы полезно.)
Это стек действий перед вызовом finish()
, из которого запускается adb shell dumpsys activity | grep -i run
:
Running activities (most recent first):
Run #0: ActivityRecord{50a3a82 u0 io.myapp/.activity.ActivityMain t6634}
Running activities (most recent first):
Run #0: ActivityRecord{b13082f u0 com.teslacoilsw.launcher/.NovaLauncher t6481}
Running activities (most recent first):
Run #0: ActivityRecord{c974ad u0 com.android.chrome/com.google.android.apps.chrome.Main t6607}
Где com.teslacoilsw.launcher/.NovaLauncher
мой домашний экран.