8 votos

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

Me gustaría una forma rápida de iniciar la inmovilización usando mi iPhone, esperemos que sólo con el teclado. Utilizando el menú bluetooth, puedo elegir el Conectarse a la Red de opción en el submenú para mi dispositivo, pero es posible automatizar esto?

En última instancia que desee asignar a esta a un acceso directo en (muy impresionante) de Alfred.app, pero nada de usar la línea de comandos o AppleScript de trabajo.

Es esto posible? Gracias!!

3voto

Bill Puntos 1408

No parece que existe una relación directa diccionario de AppleScript para trabajar con Bluetooth de esta manera.

Usted podría utilizar la GUI de secuencias de comandos a pesar de que, básicamente, se utiliza la característica de accesibilidad de Mac OS para seleccionar elementos de menú, etc.

Una gran valoración crítica sobre cómo empezar con la interfaz gráfica de AppleScript está disponible en MacOSAutomation.com.

GUI de automatización puede ser difícil si usted tiene un cambio constante de la lista de cosas, pero si suelen tener una lista de bluetooth elementos conectados que se mantiene el mismo debe estar bien.

Entonces, usted puede llamar a este AppleScript a través de Alfred.

1voto

Richard Maynard Puntos 26

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

En el enlace de arriba hay un muy buen script he actualizado un poco. Tenga en cuenta que se utiliza blueutil [ repositorio git ] [ web/archivos binarios ].

Activar 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

Desactivar 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

0voto

Wolph Puntos 408

Me gustaría recomendar el uso de automator para esto, se le puede llamar de Alfred hacerlo fácil :)

Mi actual flujo de trabajo de automator hace esto:

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

Usando este método, usted puede automatizar casi cualquier cosa dentro de un minuto

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X