Як я можу розпочати прив’язку Bluetooth за допомогою командного рядка?


8

Мені б хотілося швидкого способу розпочати прив’язку за допомогою свого iPhone, сподіваюся, просто за допомогою клавіатури. Використовуючи меню Bluetooth, я можу вибрати в підменю свого пристрою опцію Підключення до мережі, але чи можливо це автоматизувати?

Зрештою, я хочу призначити це ярликом у (дуже дивовижному) Alfred.app, але все, що використовує командний рядок або AppleScript, буде працювати.

Чи можливо це? Дякую!!

Відповіді:


3

Схоже, немає прямого словника AppleScript для роботи з Bluetooth таким чином.

Ви можете використовувати графічний сценарій GUI, який, в основному, використовує функцію доступності Mac OS для вибору пунктів меню тощо.

Відмінний опис того, як почати користуватися графічним інтерфейсом AppleScript, є на MacOSAutomation.com .

Автоматизація графічного інтерфейсу може бути важкою, якщо у вас постійно змінюється список речей, але якщо у вас зазвичай підключений список елементів Bluetooth, який залишається таким же, у вас повинно бути все в порядку.

Потім ви могли зателефонувати цьому AppleScript через Альфреда.


1

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

У вищенаведеному посиланні є дуже хороший сценарій, який я трохи оновив. Зауважте, що він використовує blueutil [ git repo ] [ веб-сайт / бінарні файли ].

Увімкнути 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

Вимкнути 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

0

Я б рекомендував використовувати для цього автоматизатор, ви можете зателефонувати йому від Альфреда, щоб це було легше :)

Мій поточний робочий процес автоматизації робить це:

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

Використовуючи цей метод, ви можете автоматизувати майже все, що завгодно

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.