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

如何通过编程方式打开手机主屏幕的应用列表菜单?

Android 编程唤起主屏幕应用菜单(应用抽屉)实现方案

这里的主屏幕应用菜单即Launcher提供的应用抽屉(App Drawer),属于各Launcher自定义实现的功能,没有系统级通用API,不同场景实现方式如下:

场景1:你正在开发自定义Launcher应用

直接调用你自己实现的应用抽屉展开逻辑即可,无需额外适配。

场景2:普通第三方应用唤起系统默认Launcher的应用抽屉

适配Android 11及更早版本

大部分主流原生/厂商定制Launcher支持通过发送指定Intent触发,代码示例如下:

// Kotlin 实现
val drawerIntent = Intent("android.intent.action.MAIN")
drawerIntent.addCategory("android.intent.category.APP_LAUNCHER")
drawerIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
try {
    startActivity(drawerIntent)
} catch (e: ActivityNotFoundException) {
    // 当前Launcher不支持该调用方式,执行降级逻辑
}
// Java 实现
Intent drawerIntent = new Intent("android.intent.action.MAIN");
drawerIntent.addCategory("android.intent.category.APP_LAUNCHER");
drawerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
    startActivity(drawerIntent);
} catch (ActivityNotFoundException e) {
    // 不支持的场景做降级处理
}

适配Android 12及更高版本

系统对第三方应用触发Launcher内部操作的权限做了严格限制,普通应用无法通过上述Intent唤起应用抽屉,仅两种方式可实现:

  1. 应用为系统预装应用,或申请到了系统级签名权限
  2. 应用获得用户授予的无障碍权限,通过模拟用户点击操作唤起:
    • 检测当前顶层应用为系统Launcher
    • 遍历无障碍节点,匹配应用抽屉按钮的文本/内容描述/位置特征
    • 调用performAction(AccessibilityNodeInfo.ACTION_CLICK)触发点击

注意事项

没有全设备全版本通用的实现方案,部分定制ROM的Launcher完全不对外开放应用抽屉的唤起接口,需要针对目标设备做单独适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:03