Take the 2-minute tour ×

I'm trying to implement device discovery using bluetooth in IOS 5.0.1 iPhone 4S. I'm using the private framework BluetoothManager.

My code is:

- (IBAction)searchForDevices:(id)sender
    [self.indicator setHidden:NO];

    [[NSNotificationCenter defaultCenter] addObserver:self    selector:@selector(bluetoothAvailabilityChanged:)     name:@"BluetoothAvailabilityChangedNotification" object:nil];

    btCont = [BluetoothManager sharedInstance];

    [[NSNotificationCenter defaultCenter] addObserver:self     selector:@selector(deviceDiscovered:) name:@"BluetoothDeviceDiscoveredNotification"     object:nil];

- (void)bluetoothAvailabilityChanged:(NSNotification *)notification
    self.label.text = @"Availability changed!";
    [btCont setDeviceScanningEnabled:YES];

- (void)deviceDiscovered:(BluetoothDevice *)device

    [self.indicator setHidden:YES]; 
    self.label.text = device.address;

My bluetooth headset is discovered. deviceDiscovered callback function is called, but device.address does NOT contain the MAC address of the bluetooth device. The app is crashing. Also, device.name return the name of the notification (BluetoothDeviceDiscoveredNotification) instead of the name of the device discovered.

Any suggestions how can I retrieve the MAC address of my bluetooth headset this way?


share|improve this question
add comment

2 Answers

use this code:

- (void)deviceDiscovered:(NSNotification *) notification {
    BluetoothDevice *bt = [notification object];
    NSLog(@"name: %@ address: %@",bt.name, bt.address);
share|improve this answer
Thanks, what about the RSSI? How to find the RSSI of the discovered bluetooth device? –  Anatoly Anatoly Mar 24 '13 at 10:00
add comment

If this is a jailbreak app, you can use the key kLockdownBluetoothAddressKey via liblockdown.dylib

share|improve this answer
thanks for the response.. actually it is possible even easier because the object passed to deviceDiscovered IS actually a bluetooth device and it contains a name and mac address as well. I have written down my answer below. Is tere a way to know the RSSI though? This property does not exist in BluetoothDevice object –  Anatoly Anatoly Jun 6 '12 at 11:52
did you manage to read the name after all? –  radhoo Jul 16 '12 at 11:31
Yes, but without the RSSI, it is of no value for my purpose. It is very strange there is no such property of BluetoothDevice object –  Anatoly Anatoly Jul 17 '12 at 9:25
add comment

Your Answer


