Connect to bluetooth device (iPhone) via command line on MacOSX

bluetooth, iphone, macos, shell

Solution

This answer is very similar to @Wolph's answer; however after fighting other issues this is what I came up with. I like it better for two reasons: # It will not disconnect the device if it is already connected # Nice output from `osascript`

Just save it in a file and call `osascript path/to/file.applescript`

This was working on OSX Mavericks 10.9.2 as of 11-Apr-2014, although you may need to grant access to whatever method you use to run this in the security preferences panel. See this Apple KB: http://support.apple.com/kb/HT5914

All you should have to do is change the `"LG HBS730"` string to match the name of your device and you should be set. The returns are there so you get nice output from `osascript`.

activate application "SystemUIServer"
tell application "System Events"
  tell process "SystemUIServer"
    -- Working CONNECT Script.  Goes through the following:
    -- Clicks on Bluetooth Menu (OSX Top Menu Bar)
    --    => Clicks on LG HBS730 Item
    --      => Clicks on Connect Item
    set btMenu to (menu bar item 1 of menu bar 1 where description is "bluetooth")
    tell btMenu
      click
      tell (menu item "LG HBS730" of menu 1)
        click
        if exists menu item "Connect" of menu 1
          click menu item "Connect" of menu 1
          return "Connecting..."
        else
          click btMenu -- Close main BT drop down if Connect wasn't present
          return "Connect menu was not found, are you already connected?"
        end if
      end tell
    end tell
  end tell
end tell

Problem

I'm trying to figure out a way to connect to my iPhone via Bluetooth with a shell script. I'm currently using an applescript which essentially does this through UIElements, but I'm wondering if this can be done with a command line utility, a.l.a. blueutil but with the ability to connect to the device not just turn on/off bluetooth? Thanks for the consideration. -Afshin

Original source