Отложенные глубокие ссылки на внешние приложения на Android - PullRequest
0 голосов
/ 19 июня 2019

Я хочу сделать отложенную глубокую ссылку из моего приложения на внешнее приложение (приложение, которое я не контролирую) на Android.Он отлично работает, чтобы открыть приложение в playstore, если оно не установлено на устройстве, и работает, если приложение действительно установлено, и открыть намерение в определенном месте приложения.Я пытаюсь выполнить установку приложения, а затем, когда пользователь открывает приложение, перенаправляя его в местоположение, указанное в Intent.

Теперь я проверяю, установлено приложение или нет.и если он установлен, я открываю его с намерением открыть приложение в нужном месте.Эти 2 намерения действуют так, как я ожидаю: сначала открывается магазин воспроизведения и устанавливается приложение, а другое открывает приложение в определенном месте.

    fun start() {
        if (isAppInstalled()) {
            startAppWithIntent(deepLink)
        } else {
            goToPlayStore()
        }
    }

    private fun isAppInstalled(): Boolean =
        activity.packageManager.getLaunchIntentForPackage("com.myapp.xx") != null

    private fun startAppWithIntent(deepLink: String) {
        val startAssetIntent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink))
        activity.startActivity(startAssetIntent)
    }

    private fun goToPlayStore() {
        val goToPlayStoreIntent = Intent(
            Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.myapp.xx")
        ).apply {
            setPackage("com.android.vending")
        }

        activity.startActivity(goToPlayStoreIntent)
        activity.finish()
    }

Однако проблема заключается в том, что когда приложение не установленои пользователь устанавливает и открывает приложение, оно открывается на домашней странице приложения.

Как создать Intent, который сначала устанавливает приложение, а затем приступает к открытию приложения в нужном месте за один раз?Это вообще возможно?Или это ответственность установленного приложения?

...