我想将我的应用程序的深层链接延迟到Android上的外部应用程序(不受我控制的应用程序)。 如果未在设备上安装该应用程序,则可以完美地在Playstore中打开该应用程序;如果确实已安装该应用程序,则可以在应用程序中的特定位置打开意图。 我正在努力安装应用程序,然后在用户打开应用程序时将其重定向到Intent指定的位置。
我现在的操作方式是检查是否已安装该应用程序,如果已安装,则可以在所需位置打开该应用程序。这两个意图均符合我的预期:首先打开Play商店并安装应用程序,另一个在特定位置打开应用程序。
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,先安装应用程序,然后再一次在所需位置打开该应用程序?可能吗还是这是已安装应用的责任?
答案 0 :(得分:0)
@ pantos27所说的是正确的。似乎接收方的应用程序需要具有BroadcastReceiver()
才能在安装应用程序时收听event
。
有关更多详细信息,请参见Official Docs