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

如何将KeyMapper快捷方式Intent转换为Shell命令触发?

问题:将KeyMapper快捷方式Intent转换为Shell命令失败

想要在Shell中运行KeyMapper的如下Intent:

#Intent;
action=io.github.sds100.keymapper.ACTION_TRIGGER_KEYMAP_BY_UID;
component=io.github.sds100.keymapper/.api.LaunchKeyMapShortcutActivity;
S.io.github.sds100.keymapper.EXTRA_KEYMAP_UID=2bba7f4f-0a7e-44d6-828d-ec87c0c868cd;
end

第一次尝试的Root权限Shell命令:

am start -a io.github.sds100.keymapper.ACTION_TRIGGER_KEYMAP_BY_UID;component=io.github.sds100.keymapper/.api.LaunchKeyMapShortcutActivity;S.io.github.sds100.keymapper.EXTRA_KEYMAP_UID=2bba7f4f-0a7e-44d6-828d-ec87c0c868cd

返回报错:

Error: Activity not started, unable to resolve Intent { act=io.github.sds100.keymapper.ACTION_TRIGGER_KEYMAP_BY_UID flg=0x10000000 }

/system/bin/sh: <stdin>[1]: S.io.github.sds100.keymapper.EXTRA_KEYMAP_UID=2bba7f4f-0a7e-44d6-828d-ec87c0c868cd: not found

编辑补充的尝试命令:

am start --user 0 -a io.github.sds100.keymapper.ACTION_TRIGGER_KEYMAP_BY_UID --es S.io.github.sds100.keymapper.EXTRA_KEYMAP_UID=2bba7f4f-0a7e-44d6-828d-ec87c0c868cd --el io.github.sds100.keymapper/.api.LaunchKeyMapShortcutActivity

返回信息显示已启动Intent,但实际并未触发对应快捷方式,求助正确实现方法。

正确的Shell命令实现

错误原因分析

  1. 第一次命令用分号分隔参数,Shell会把分号后的内容当成独立命令执行,导致Intent参数解析错误。
  2. 第二次命令存在两个关键错误:
    • Extra参数格式错误:--es需要分开传递键和值,不能用等号连写
    • Component参数使用错误:应该用-n指定组件,而非--el(--el用于传递长整数类型参数)

正确命令

am start --user 0 -a io.github.sds100.keymapper.ACTION_TRIGGER_KEYMAP_BY_UID -n io.github.sds100.keymapper/.api.LaunchKeyMapShortcutActivity --es io.github.sds100.keymapper.EXTRA_KEYMAP_UID "2bba7f4f-0a7e-44d6-828d-ec87c0c868cd"

参数说明

  • --user 0:指定当前主用户(大部分设备主用户ID为0)
  • -a:指定Intent的Action
  • -n:指定Intent的Component(包名/目标Activity路径)
  • --es:传递字符串类型的Extra参数,格式为--es 键 值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:20:28