cfi*_*her 1 macos cocoa bluetooth objective-c mac-app-store
有没有办法以Mac App Store接受的方式以编程方式打开和关闭OSX上的蓝牙连接?
如果Apple批准了修改用户天线设置的应用程序,那将会有点令人惊讶.无论你怎么做,这听起来都像是他们通常不喜欢的东西.但是,有时我会感到惊讶.
你绝对可以通过Applescript做到这一点:
tell application "System Preferences"
set current pane to pane "com.apple.preferences.Bluetooth"
tell application "System Events"
tell process "System Preferences"
set isOnCheckbox to checkbox "On" of window "Bluetooth"
if value of isOnCheckbox is 0 then
click isOnCheckbox
end if
end tell
end tell
quit
end tell
Run Code Online (Sandbox Code Playgroud)
请注意,这将接管系统偏好设置,并在最后关闭它,即使用户正在运行它.这不是最好的用户体验,如果没有先警告用户,我绝对不会这样做.但当然,我不建议在不警告用户的情况下修改蓝牙设置.
编辑
因为你问过,我会花点时间在这里咆哮......
关于如何学习如何阅读和编写上述内容,首先请注意,它与我专业撰写的大多数AppleScript一样,是通过谷歌搜索和实验拼凑而成的.我是一个纯粹的程序员,我相信真正了解你使用的技术.即使我在AppleScript中拼凑一些东西,直到他们"有点工作".
我希望有一份非常好的文件.当然有语言指南,但它有点像从ObjC语言定义中学习Cocoa.我目前的建议是从AppleScript开始,然后是AppleScript:The Definitive Guide.特别是Neuburg并没有涂上这种语言或假装它是有道理的.Applescript,比原来的COBOL(ADD X TO Y GIVING Z)更糟糕,很难写,因为它很难变得容易.我喜欢并尊重许多语言.AppleScript是废话.
然而,它是与大多数Mac系统功能进行交互的最受支持的方式,因此一个优秀的Mac开发人员至少需要能够在其中获得.即使您通过ObjC(或MacRuby)使用新的ScriptingBridge,底层对象模型仍然是基于AppleScript的.根据我的经验,为了使ScriptingBridge代码运行良好,您通常必须先在AppleScript中编写它,然后将其转换为Cocoa.