Como posso iniciar o compartilhamento Bluetooth usando a linha de comando?

8

Eu gostaria de uma maneira rápida de começar a amarrar usando meu iPhone, espero que apenas usando o teclado. Usando o menu bluetooth, posso escolher a opção Conectar à rede no submenu do meu dispositivo, mas é possível automatizar isso?

Por fim, quero atribuir isso a um atalho no (o incrível) Alfred.app, mas qualquer coisa usando a linha de comando ou o AppleScript funcionará.

Isso é possível? Obrigado!!

Mcobrien
fonte

Respostas:

3

Não parece que exista um dicionário AppleScript direto para trabalhar com Bluetooth dessa maneira.

No entanto, você pode usar scripts da GUI, que basicamente usam o recurso de acessibilidade do Mac OS para selecionar itens de menu etc.

Um excelente artigo sobre como iniciar a GUI AppleScript está disponível no MacOSAutomation.com .

A automação da GUI pode ser difícil se você tiver uma lista de itens em constante mudança, mas se você geralmente tiver uma lista de itens de Bluetooth conectados que permaneça a mesma, você deve estar bem.

Você poderia chamar esse AppleScript através de Alfred.

jmlumpkin
fonte
1

http://macscripter.net/viewtopic.php?id=38559

No link acima, há um script muito bom que acabei de atualizar um pouco. Observe que ele usa blueutil [ git repo ] [ website / binários ].

Ativar Bluetooth:

-- Enable Bluetooth and Connect to iPhone

property blueutilPath : "/opt/local/bin/blueutil"

-- Turn on bluetooth.
if execBlueutil("status") contains "Status: off" then
    execBlueutil("on")

    connectDevice()

    doGrowl()

end if

on execBlueutil(command)
    set res to do shell script blueutilPath & " " & command
    if res contains "Error" then
        display dialog res
        quit
    end if
    return res
end execBlueutil

-- Connect Device
on connectDevice()
    tell application "System Preferences"
        activate
        set AppleScript's text item delimiters to "."
        set current pane to pane "com.apple.preference.network"
        set winNetwork to "Network"
        set btooth to "Bluetooth"

        tell application "System Events" to tell process "System Preferences"
            set theRow to row 1 of table 1 of scroll area 1 of window winNetwork whose value of static text 1 contains btooth
            select theRow --clicks the bluetooth row
            --If Bluetooth is already connected, the button will say Disconnect, so we don't want to turn it off:
            try
                click (button 1 of group 1 of window winNetwork whose title is "Connect")
            end try
        end tell
        tell application "System Preferences"
            quit
        end tell
    end tell
end connectDevice

on doGrowl()
    tell application "System Events"
        set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
    end tell
    if isRunning then
        tell application id "com.Growl.GrowlHelperApp"
            set the allNotificationsList to ¬
                {"Bluetooth Setting"}
            set the enabledNotificationsList to ¬
                {"Bluetooth Setting"}
            register as application ¬
                "AppleScript - Bluetooth" all notifications allNotificationsList ¬
                default notifications enabledNotificationsList

            notify with name ¬
                "Bluetooth Setting" title ¬
                "Bluetooth is On & iPhone Connected" description ¬
                "Bluetooth has been enabled with iPhone tethered." application name "AppleScript - Bluetooth" icon of file (path to me)
        end tell
    end if
end doGrowl

Desativar bluetooth:

property blueutilPath : "/opt/local/bin/blueutil"

-- Turn off Bluetooth.
if execBlueutil("status") contains "Status: on" then
    execBlueutil("off")

    doGrowl()
end if
on execBlueutil(command)
    set res to do shell script blueutilPath & " " & command
    if res contains "Error" then
        display dialog res
        quit
    end if
    return res
end execBlueutil

on doGrowl()
    tell application "System Events"
        set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
    end tell
    if isRunning then
        tell application id "com.Growl.GrowlHelperApp"
            set the allNotificationsList to ¬
                {"Bluetooth Setting"}
            set the enabledNotificationsList to ¬
                {"Bluetooth Setting"}
            register as application ¬
                "AppleScript - Bluetooth" all notifications allNotificationsList ¬
                default notifications enabledNotificationsList

            notify with name ¬
                "Bluetooth Setting" title ¬
                "Bluetooth Off" description ¬
                "Bluetooth has been disabled." application name "AppleScript - Bluetooth" icon of file (path to me)
        end tell
    end if
end doGrowl
Meetai.com
fonte
0

Eu recomendaria usar o automator para isso, você pode chamá-lo de Alfred para facilitar :)

Meu fluxo de trabalho atual do automator faz isso:

Click the "bluetooth" menu bar item.
Connect to Network

Usando esse método, você pode automatizar quase tudo em um minuto

Wolph
fonte