Mac : 当设备通过蓝牙连接时启动命令
Mac : Launch command when device connected by bluetooth
我想在特定的外部蓝牙设备连接到我的 Mac 时启动 shell 命令。
一个很好的方法(无需安装第三方软件)是在 ~/Library/LaunchAgents
中添加一个 plist 文件
this page上有一个wifi连接到特定位置时启动事件的例子。这是通过观看特定文件来完成的:
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string>
</array>
您认为可以对蓝牙事件做同样的事情吗?
感谢您的帮助!
在 ~/Library/LaunchAgents 中创建一个文件,其中包含:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>Smartcard reader</string>
<key>ProgramArguments</key>
<array>
<string>/Users/USERNAME/Library/Scripts/script.bash</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/com.apple.Bluetooth.plist</string>
</array>
</dict>
</plist>
并且在/Users/USERNAME/Library/Scripts/script.bash中我们可以测试连接的设备是否正确:
if [ $(system_profiler SPBluetoothDataType | grep "Smart Reader 2501" | wc -l) -eq 1 ] ; then
echo "Smartcard connected"
fi
使用
启动服务
launchctl load ~/Library/LaunchAgents/yourscript
我想在特定的外部蓝牙设备连接到我的 Mac 时启动 shell 命令。
一个很好的方法(无需安装第三方软件)是在 ~/Library/LaunchAgents
中添加一个 plist 文件this page上有一个wifi连接到特定位置时启动事件的例子。这是通过观看特定文件来完成的:
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string>
</array>
您认为可以对蓝牙事件做同样的事情吗?
感谢您的帮助!
在 ~/Library/LaunchAgents 中创建一个文件,其中包含:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>Smartcard reader</string>
<key>ProgramArguments</key>
<array>
<string>/Users/USERNAME/Library/Scripts/script.bash</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/com.apple.Bluetooth.plist</string>
</array>
</dict>
</plist>
并且在/Users/USERNAME/Library/Scripts/script.bash中我们可以测试连接的设备是否正确:
if [ $(system_profiler SPBluetoothDataType | grep "Smart Reader 2501" | wc -l) -eq 1 ] ; then
echo "Smartcard connected"
fi
使用
启动服务launchctl load ~/Library/LaunchAgents/yourscript