关闭盖子后,如何防止MacBook Air连接到蓝牙扬声器?


23

即使关闭盖子,MacBook Air也会自动连接到(先前已配对的)蓝牙扬声器,这阻止了我目前正在实际使用的设备连接到扬声器。

我如何配置MacBook Air在关闭机盖时自动连接到蓝牙扬声器?我希望盖子打开时一切都保持原样。


Answers:


12

以其他答案为基础,给出大部分/所有难题,但不能给出完整的解决方案:

  1. 确保检查是否要让蓝牙设备唤醒Mac
    • 如果你不希望出现这种情况,取消其在系统偏好和检查,如果不希望的行为仍然存在(这是一个在Bluetooth→交通Advanced…→交通Allow Bluetooth devices to wake this computer
  2. 如果您需要/想要通过蓝牙设备唤醒Mac,或者尽管关闭了该选项,这种情况仍在发生,请按照以下步骤操作:

安装一个帮助程序以检查系统是否处于睡眠状态(如果您只想区分打开/关闭而没有Mac处于睡眠状态的机盖,则目前似乎没有简便的方法–即我没有找到检测方法),然后切换蓝牙取决于睡眠/唤醒事件。

帮助程序检测睡眠/唤醒(请检查这篇文章中的各种选项):

可以在睡眠和唤醒时运行脚本吗?

另请参阅有关“ 根据当前网络自动打开或关闭蓝牙(运行Lion的MBP) ”的帖子,其中提到ControlPlane

从脚本切换蓝牙:

如何从命令行控制蓝牙无线电?

我的建议:通过自制程序安装blueutil

blueutil power 0睡觉时奔跑

blueutil power 1在唤醒

现在,我对这个问题的贡献:如果电源打p导致唤醒事件,请尝试以下脚本进行唤醒,以区分其他唤醒原因和盖子打开:

#!/bin/bash
limitSec=3
currentEpoch=$(date "+%s")
wakeEpoch=$(cat /var/log/system.log | grep LidOpen | tail -n 1 | date -j -f "%b %d %T" "$(cut -c1-15)" "+%s")
wakeSeconds=$(( $currentEpoch - $wakeEpoch ))

if [[ $wakeSeconds -lt $limitSec ]]; then
    logger "Enabling bluetooth again due to lid open"
    blueutil power 1
fi

它将超时设置为3秒(limitSec),使用来获取当前时间和最后一次唤醒时间Wake reason: EC.lidOpen,如果还不到3秒,它将重新启用蓝牙


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.