Come posso avviare il tethering Bluetooth usando la riga di comando?

8

Vorrei un modo rapido per iniziare il tethering usando il mio iPhone, si spera che usi la tastiera. Utilizzando il menu Bluetooth, posso scegliere l'opzione Connetti alla rete nel sottomenu del mio dispositivo, ma è possibile automatizzarlo?

In definitiva voglio assegnarlo a una scorciatoia in (molto impressionante) Alfred.app, ma qualsiasi cosa usi la riga di comando o AppleScript funzionerà.

È possibile? Grazie !!

    
posta mcobrien 23.03.2012 - 22:15
fonte

3 risposte

3

Non sembra che esista un dizionario AppleScript diretto per lavorare con Bluetooth in questo modo.

Potresti usare lo scripting GUI, che fondamentalmente usa la funzione di accessibilità di Mac OS per selezionare voci di menu, ecc.

Una bella recensione su come iniziare con la GUI AppleScript è disponibile su MacOSAutomation.com .

L'automazione della GUI può essere difficile se si dispone di un elenco di cose in costante cambiamento, ma se si ha comunemente un elenco di elementi Bluetooth collegati che rimane lo stesso, si dovrebbe essere ok.

Potresti quindi chiamare questo AppleScript tramite Alfred.

    
risposta data 23.03.2012 - 22:50
fonte
1

link

Nel link sopra c'è uno script molto carino che ho appena aggiornato un po '. Nota che usa blueutil [ git repo ] [ sito web / binari ].

Attiva 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

Disattiva 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
    
risposta data 15.01.2015 - 10:32
fonte
0

Consiglierei di usare l'automazione per questo, puoi chiamarlo da Alfred per semplificare:)

Il flusso di lavoro corrente del mio automatore fa questo:

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

Utilizzando questo metodo puoi automatizzare quasi tutto in un minuto

    
risposta data 07.03.2013 - 19:22
fonte

Leggi altre domande sui tag