mac上可通过automator+shell脚本或后台监听脚本实现蓝牙设备连接时自动启动指定app,需确保设备已配对并出现在“我的设备”列表,脚本中设备名和app名须与系统显示完全一致。

Mac上想让某个蓝牙设备一连接就自动启动指定App,比如AirPods连上就打开音乐软件、蓝牙键盘配对后自动运行快捷键管理工具——这需要组合系统蓝牙事件监听与自动化脚本实现,不能靠单纯勾选权限完成。
确认设备已稳定配对并可被系统识别
打开“系统设置”→“蓝牙”,确保目标设备出现在“我的设备”列表中,且状态为“已连接”或“已配对”。【未在此列表中出现的设备,后续所有自动化均无法触发】
若设备显示为“附近设备”但未配对,请先点击“连接”,按提示完成配对流程。配对成功后设备会自动移入“我的设备”区域。
使用Automator创建蓝牙连接触发工作流
打开“访达”→前往→“应用程序”→双击“Automator”;新建文档时选择“快速操作”(不是“应用程序”或“工作流”)。
在左侧操作库中搜索“运行Shell脚本”,将其拖入右侧编辑区;在脚本框中粘贴以下内容:
if system_profiler SPBluetoothDataType | grep -q "YourDeviceName"; then open -a "Music"; fi
将其中 【YourDeviceName】 替换为你设备在“我的设备”列表中显示的**完整名称**(区分大小写,空格保留),例如 AirPods Pro (L)、Logitech MX Keys S;将 【Music】 替换为你想启动的App的**准确英文名**(可在“应用程序”文件夹中右键→“显示简介”查看“通用”标签页里的“名称”字段)。
点击右上角“设定”图标→勾选“工作流收到的输入”设为“无输入”,“应用”设为“Finder”。保存为“AutoLaunchOnBluetoothConnect”。
启用蓝牙设备连接事件监听(终端命令)
方法一:监听系统蓝牙日志并触发Automator快速操作
打开“终端”,输入以下命令后回车:
launchctl load -w /System/Library/LaunchAgents/com.apple.bluetoothUIServer.plist
该命令确保蓝牙UI服务常驻运行,是后续事件捕获的前提。若提示“already loaded”,可跳过。
方法二:部署轻量级监听脚本(推荐,更可靠)
在终端中依次执行:
mkdir -p ~/bin → cd ~/bin → touch bluetooth-watcher.sh → chmod +x bluetooth-watcher.sh
用文本编辑器打开 bluetooth-watcher.sh,写入:
#!/bin/bash
while true; do
if system_profiler SPBluetoothDataType | grep -q "YourDeviceName" && ! pgrep -x "Music" > /dev/null; then
open -a "Music"
fi
sleep 3
done
保存后,在终端运行 nohup ~/bin/bluetooth-watcher.sh & 使其后台持续运行。该脚本每3秒检查一次设备是否在线且目标App未运行,满足即启动。
【必须关闭SIP才能让此脚本在登录后自动启动,如需开机自启请另行配置LaunchAgent】
验证并微调触发条件
断开目标蓝牙设备,确认App已退出;重新开启设备并等待其在“系统设置→蓝牙”中显示为“已连接”。
观察10秒内App是否自动启动。若未启动,检查Automator保存路径是否含中文、脚本中设备名是否与系统显示完全一致、目标App是否处于“已损坏”状态(右键→“显示简介”看是否有“已损坏”的红色警告)。
如设备连接后App闪退,说明该App不支持无界面唤醒,需改用AppleScript包装:在Automator中改选“运行AppleScript”,内容写成 tell application "Music" to activate。











