Bluetooth support on Android Emulator

I have been playing around with Android lately, and one thing that annoyed me is the emulator does not support Bluetooth (as opposed to J2ME emulator, which does).
So if you do not have an actual Android device (like me), and you want to do Bluetooth/WiFi programming, you run in to a problem.Fortunately, there is a way out – Install the Android image on a VM and use your own Bluetooth device. This is what I did:

  1. Download Androidx86 from http://www.android-x86.org/. This is an .iso file, so you’d need something like VMWare or VirtualBox to run it. Me, I use VirtualBox.
  2. When creating the virtual machine, you need to set the type of guest OS as Linux instead of Other.
  3. After creating the virtual machine, set the network adapter to ‘Bridged’.
  4. Start the VM and select ‘Live CD VESA’ at boot.
  5. Now you need to find out the ip of this VM. Go to terminal in VM (use Alt+F1 & Alt+F7 to toggle) and use the netcfg command to find this.
  6. Now you need open a command prompt and go to your android install folder (on host). This is usually C:Program FilesAndroidandroid-sdkplatform-tools>.
  7. Type adb connect IP_ADDRESS
  8. There done! Now you need to add Bluetooth. Plug in your USB Bluetooth dongle.
  9. In VirtualBox screen, go to Devices>USB devices. Select your dongle.
  10. Done! now your Android VM has Bluetooth. Try powering on Bluetooth and discovering/paring with other devices.
  11. Now all that remains is to go to Eclipse, and run your program. The Android AVD manager should show the VM as a device on the list.

I found these links helpful. Perhaps you would too:
http://androiddevnotes.com/2011/03/08/1299521520000.html
http://developer.android.com/guide/topics/wireless/bluetooth.html#EnablingDiscoverability

🙂
Happy coding!

41 thoughts on “Bluetooth support on Android Emulator

  1. dashing.amitjha

    i followed the steps and evrything proceeded as mentioned but when i tried to lanch my program from eclipse, the mounted emulator in virtual box wasn’t showing in the list of virtual devices, can you explain y??

    Reply
  2. dashing.amitjha

    when i use “adb devices” in cmnd prmpt it’s displaying nadroid x86’s ip in d list of devices attatchd but i cn’t see it when i try from avd mannager in eclipse. so i m unable to test my apps through the mounted emulator 🙁

    Reply
  3. PDA

    I installed Android x86 on VirtualBox. There is Bluetooth in my laptop and it works fine, but I cannot turn on Bluetooth in my VM. Is there some specific things to do for laptops?

    Reply
  4. niroshini

    @Senthil, are you using the virtual device? or an actual device?

    @PDA
    I havent tried it on my laptop – but I understand that sometimes this method may not work on all systems. What’s your OS?

    Reply
  5. SENTHIL

    i tried both virtual box and vmware player.now i am getting connected to ip address as
    connected to 127.0.0.1:5555
    and when i use adb devices it’s coming as
    List of devices attached.
    emulator-5554 device
    127.0.0.1:5555 device.
    But i can’t see that device in avd manager.I am using pc with bluetooth external dongle.plz hep me.

    Reply
  6. [ro]Costi

    For SENTHIL:

    “adb connect IP_ADDRESS”

    IP_ADDRESS != 127.0.0.1
    127.0.0.1 = localhost

    IP_ADDRESS should be something like your “local ip” :
    -ex1 192.168.1.2
    -ex2 10.31.5.63

    Reply
    1. niroshini

      If you dont have built in Bluetooth, you need to add a bluetooth dongle to your PC. Usually, if you’re using a Laptop, you dont need to do this step. But for most PCs, you would need to add an external Bluetooth dongle.
      Hope you got it now 🙂

      Reply
  7. medstudent

    hello there! with bluetooth enabled in the android emulator, do you think it would it be possible to enable a laptop to send/receive messages and make calls by pairing to devices such as Gmate and SocBlue? thanks!

    Reply
  8. Bharat

    Hi,
    how can I disable ssp mode in Android emulator. Any clue?
    I tried hciconfig command to disable but as it’s only a bluez lib inside so I cant change the config. Any other clue?

    Thanks
    Bharat

    Reply
  9. Bharat

    Hi All,

    Could anyone help me , how can I disable sspmode in Android emulator.
    I tried with hciconfig command, but it failed as it has the bluez built lib only. So cant change the config.
    Is there any other way to disable ssp.

    Thanks
    Bharat

    Reply
  10. Anonymous

    I blog often and I truly appreciate your content.
    The article has really peaked my interest. I am
    going to book mark your blog and keep checking for new information
    about once per week. I subscribed to your RSS feed as well.

    Feel free to visit my web blog – great article

    Reply
  11. Anonymous

    i everebody,
    i have a problem.i use a usb dongle cc2540(bluetooth low energy) and have then to connect to my PC over VM.but it is not work.i can not see another device, e.g my keyfob (keyfob cc2540 texa instruments).i have do all step by step (Bluetooth support on Android Emulator ).please help me

    Reply
  12. Anonymous

    I seriously love your blog.. Great colors &
    theme. Did you develop this site yourself? Please reply back as I’m looking to create
    my own personal blog and want to learn where you
    got this from or exactly what the theme is called. Kudos!

    Also visit my web page :: Throne Rush Cheats

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *