¿Cómo puedo iniciar el anclaje de Bluetooth mediante la línea de comandos?

8

Me gustaría una forma rápida de comenzar a conectar con mi iPhone, con suerte solo usando el teclado. Con el menú Bluetooth, puedo elegir la opción Conectar a la red en el submenú de mi dispositivo, pero ¿es posible automatizar esto?

En última instancia, quiero asignar esto a un acceso directo en Alfred.app (el muy impresionante), pero cualquier cosa que use la línea de comandos o AppleScript funcionará.

¿Es esto posible? Gracias !!

    
pregunta mcobrien 23.03.2012 - 22:15

3 respuestas

3

No parece que haya un diccionario directo de AppleScript para trabajar con Bluetooth de esta manera.

Sin embargo, podría usar scripts de GUI, que básicamente utiliza la función de accesibilidad del sistema operativo Mac para seleccionar elementos del menú, etc.

Hay una gran reseña sobre cómo comenzar con GUI AppleScript disponible en MacOSAutomation.com .

La automatización de la GUI puede ser difícil si tienes una lista de cosas que cambia constantemente, pero si comúnmente tienes una lista de elementos Bluetooth conectados que permanece igual, deberías estar bien.

Luego puedes llamar a este AppleScript a través de Alfred.

    
respondido por el jmlumpkin 23.03.2012 - 22:50
1

enlace

En el enlace anterior hay un script muy bueno que acabo de actualizar un poco. Tenga en cuenta que utiliza blueutil [ git repo ] [ sitio web / binarios ].

Habilitar 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

Deshabilitar 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
    
respondido por el Meetai.com 15.01.2015 - 10:32
0

Recomendaría usar automator para esto, puedes llamarlo desde Alfred para hacerlo más fácil :)

Mi flujo de trabajo actual del automatizador hace esto:

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

Con este método, puede automatizar casi cualquier cosa en un minuto

    
respondido por el Wolph 07.03.2013 - 19:22

Lea otras preguntas en las etiquetas