Pergunta

Existe uma maneira de ativar e desativar programaticamente a conexão Bluetooth no OSX de uma forma que seja aceita pela Mac App Store?

De meu anteriorpergunta , encontrei sobre blueutil , mas ele usa APIs privadas.

Foi útil?

Solução

Seria um tanto surpreendente se a Apple aprovasse um aplicativo que modificasse as configurações de antena do usuário. Parece o tipo de coisa que eles normalmente desaprovam, não importa como você faça isso. Mas às vezes fico surpreso.

Você definitivamente pode fazer isso por meio do 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

Observe que isso assumirá as Preferências do sistema e, no final, fechá-lo-á mesmo que o usuário o estivesse executando. Essa não é a melhor experiência do usuário, e eu definitivamente não faria isso sem primeiro avisar o usuário. Mas é claro, eu não recomendaria modificar as configurações do bluetooth sem avisar o usuário.


Porque você perguntou, vou tirar um momento para reclamar aqui ...

Em relação a como aprender a ler e escrever o texto acima, primeiro observe que, como a maioria dos AppleScript que escrevo profissionalmente, foi remendado a partir de pesquisas e experimentações no Google. Sou um programador purista de coração e acredito em realmente entender a tecnologia que você usa. Até eu costuro coisas no AppleScript até que "meio que funcionem".

Gostaria que houvesse um documento realmente bom. Claro, há o guia de linguagem , mas é como aprender Cocoa com a definição da linguagem ObjC. Minhas recomendações atuais são Beginning AppleScript e, em seguida, AppleScript: The Definitive Guide . Neuburg, em particular, não adoça a linguagem nem finge que faz sentido. O Applescript, ainda pior que o COBOL (ADD X TO Y GIVING Z) original, é muito difícil de escrever porque tenta muito ser fácil. Amo e respeito muitos idiomas. AppleScript é uma porcaria.

É, no entanto, a maneira mais suportada de interagir com a maioria das funções do sistema Mac, então um bom desenvolvedor de Mac precisa pelo menos ser capaz de se virar com isso. Mesmo se você usar o novo ScriptingBridge via ObjC (ou MacRuby), o modelo de objeto subjacente ainda é baseado em AppleScript. Na minha experiência, para fazer o código ScriptingBridge funcionar bem, geralmente é necessário escrevê-lo primeiro em AppleScript e depois traduzi-lo para Cocoa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top