关机/开机时自动关闭/打开蓝牙

关机/开机时自动关闭/打开蓝牙

我正在 Macbook Pro 触控栏上通过 bootcamp 双启动 Win10 / OSX。

当我切换到 Windows 时,除非我在关闭 OSX 之前禁用蓝牙,否则我的蓝牙鼠标将无法连接(或很难连接)。我认为存在一个问题,即 OSX 以某种方式保留了鼠标的蓝牙配对,这使其在 Windows 中出现问题。如果我首先在 OSX 中禁用蓝牙,那么 Win10 可以 100% 毫无问题地连接到鼠标。

因此,我希望有一种方法可以在我重启或关闭 OSX 时自动禁用蓝牙,反之亦然。这样我就不会总是忘记手动禁用它。

答案1

您可以使用两种不同的工具来完成此操作:

  • 蓝图(免费)这是一个用于控制蓝牙无线电的命令行实用程序(macOS 中没有原生方式可以执行此操作)。您可以从以下位置获取更多信息这个帖子。但是,命令(一旦安装了 Blueutil)将是:

    $ blueutil off      ← Turns off Bluetooth radio
    
  • 事件脚本允许您在某些事件(如关机、重启、您的位置、USB 设备检测等)时运行脚本/命令。我最近几天一直在测试它,到目前为止,它似乎运行得很好。它不是免费的,但只需 4 英镑,就可以相当便宜地解决问题。

我通常会使用launchd,但是,没有办法使用它在关机时启动脚本,唯一的方法是编写你自己的关闭钩子

答案2

Allan 的答案不再适用于最新版本的 macOS,因为蓝工具已经过时并且无法针对现代 SDK 进行编译。事件脚本仍然可用,并且可以使用 Applescript 代替 blueutil。我修改了reddit 上发布了一些脚本上班:

蓝牙开启.scpt

tell application "System Events"
    tell process "ControlCenter"
        set BluetoothButton to menu bar item "Bluetooth" of menu bar 1
        click BluetoothButton
        delay 1
        set OnSwitch to checkbox "Bluetooth" of group 1 of window "Control Center"
        if value of OnSwitch is 0 then
            click OnSwitch
        end if
    end tell
end tell

蓝牙关闭.scpt

tell application "System Events"
    tell process "ControlCenter"
        set BluetoothButton to menu bar item "Bluetooth" of menu bar 1
        click BluetoothButton
        delay 1
        set OnSwitch to checkbox "Bluetooth" of group 1 of window "Control Center"
        if value of OnSwitch is 1 then
            click OnSwitch
        end if
    end tell
end tell

用法: osascript bluetooth_off.scpt或者osascript bluetooth_on.scpt然后从 EventScripts 中使用这些。

相关内容