You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在当前应用内启动其他多启动器应用的指定Activity?

实现方案

要启动目标应用的非默认启动入口(即额外快捷方式对应的Activity),可以通过以下两种方式实现:

方式一:查询目标应用的所有LAUNCHER Activity

Android中,应用的启动快捷方式本质上对应带有ACTION_MAIN和CATEGORY_LAUNCHER过滤规则的Activity。你可以直接查询目标包下所有符合该规则的Activity,再选择指定的启动:

  1. 查询所有可启动的Activity信息
// 替换为目标应用的包名
val targetPackageName = "com.example.targetapp"
val queryIntent = Intent(Intent.ACTION_MAIN).apply {
    addCategory(Intent.CATEGORY_LAUNCHER)
    setPackage(targetPackageName)
}
// 获取所有匹配的Activity列表
val launchableActivities = packageManager.queryIntentActivities(queryIntent, 0)

返回的launchableActivities列表中,每个ResolveInfo对象包含对应Activity的名称、显示标签等信息,你可以根据这些信息给用户展示选择界面。

  1. 启动指定的Activity
    拿到目标ResolveInfo后,构造Intent启动对应的Activity:
val targetActivity = launchableActivities[0] // 替换为你要启动的Activity索引
val launchIntent = Intent(Intent.ACTION_MAIN).apply {
    component = ComponentName(targetPackageName, targetActivity.activityInfo.name)
    addCategory(Intent.CATEGORY_LAUNCHER)
    // 启动外部应用Activity必须添加此flag
    flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(launchIntent)

方式二:通过ShortcutManager获取快捷方式(Android 7.1+)

如果目标应用的快捷方式是通过系统Shortcut API创建的,你可以借助ShortcutManager获取这些快捷方式的Intent并启动:

注意:Android 11及以上需要申请QUERY_ALL_PACKAGES权限(或针对目标包的QUERY_PACKAGES权限)才能获取其他应用的快捷方式。

val shortcutManager = getSystemService(ShortcutManager::class.java)
// 获取所有类型的快捷方式(动态、清单声明、固定的)
val allShortcuts = shortcutManager.getShortcuts(
    ShortcutManager.FLAG_MATCH_DYNAMIC or 
    ShortcutManager.FLAG_MATCH_MANIFEST or 
    ShortcutManager.FLAG_MATCH_PINNED
)
// 筛选目标应用的快捷方式
val targetAppShortcuts = allShortcuts.filter { 
    it.intent?.component?.packageName == targetPackageName 
}
// 启动第一个快捷方式
targetAppShortcuts.firstOrNull()?.intent?.let {
    it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    startActivity(it)
}

关于跳转到外部的说明

启动其他应用的Activity必然会切换到目标应用的进程,这是Android进程隔离的设计决定的,无法在你的应用内部直接运行其他应用的Activity。

内容的提问来源于stack exchange,提问作者Jagnath reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:13:35