Auf der Suche nach einem externen Bluetooth-Switch zum Ausführen eines Applescripts [geschlossen]

Ich suche nach einer externen Bluetooth-Taste / einem Schalter, den ich programmieren kann, um etwas Bestimmtes zu tun, z. B. eine App zu öffnen / ein Skript auszuführen. Gibt es so etwas? Auch wenn es nur eine bestimmte Sache kann, würde das reichen.

Antworten (1)

Nicht genau das, wonach Sie suchen, aber hier ist ein Skript, das etwas tut, wenn ein Gerät angeschlossen ist.

Wenn Sie einen Lautsprecher (oder ein anderes Bluetooth-Gerät) haben, der sich automatisch verbindet, können Sie die Ein-/Aus-Taste als Schalter verwenden.

Gutschrift an Christian Stevenson auf SO .

repeat
    set statusOld to checkStatus()
    set statusNew to checkStatus()
    repeat while statusOld is equal to statusNew
        delay 1 --for 1 second checks
        set statusNew to checkStatus()
    end repeat
    if statusNew is true then
        display dialog "Device Added - put some real code here"
    else
        display dialog "Device Removed - put some real code here"
    end if
end repeat

on checkStatus()

    (*Delete the 2 lines below when done testing*)
    --set myString to button returned of (display dialog "Connected?" buttons {"Yes", "No"})
    --set myString to "name: DR-BT101 Connected: " & myString

    (*uncomment line below when done testing*)
    set myString to do shell script "system_profiler SPBluetoothDataType"

    --initial check if it's not even there
    if myString does not contain "[Device Name]" then
        return false
    else

        --find out if connected/disconnected
        set AppleScript's text item delimiters to "name:"
        set myList to the text items of myString --each item of mylist is now one of the devices

        set numberOfDevices to count of myList
        set counter to 1
        repeat numberOfDevices times --loop through each devices checking for Connected string
            if item counter of myList contains "Christian’s AirPods" then
                if item counter of myList contains "Connected: Yes" then
                    return true
                else if item counter of myList contains "Connected: No" then
                    return false
                else
                    display dialog "Error Parsing" --this shouldn't happen
                end if
            end if
            set counter to counter + 1
        end repeat
    end if
end checkStatus
Schön gefunden, Josh! Es passt möglicherweise nicht genau zur Frage des OP, aber ich kann mir bereits eine Möglichkeit vorstellen, dies für die Verwendung in meiner Umgebung anzupassen. :)