Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any way to turn on bluetooth programmatically on iOS7+

Tags:

ios

I hear that iOS7 introduced this functionality with CBCentralManager but can't find how. Is possible? There is another way widthout use GKPeerPickerController?

like image 821
Simón Urzúa Avatar asked May 23 '14 16:05

Simón Urzúa


2 Answers

You can also set the CBCentralManagerOptionShowPowerAlertKey key while instantiating the CBCentralManager to true. Then iOS will show the alert that "Turn On Bluetooth to Allow "Your App" to connect to Accessories". This alert will take you directly to the Bluetooth Setting page.

SampleCode In swift:

centralManager = CBCentralManager(delegate: self, queue: nil, options: [CBCentralManagerOptionShowPowerAlertKey: true])

SampleCode In Objective-C:

centralManager = [[CBCentralManager alloc]
                                      initWithDelegate:self 
                                      queue:dispatch_get_main_queue() 
                                      options:@{CBCentralManagerOptionShowPowerAlertKey: @(YES)}];

Happy Coding.. :)

like image 81
Sahil Mahajan Avatar answered Nov 19 '22 16:11

Sahil Mahajan


No, if the user has turned off Bluetooth all you can do is display an alert or message asking them to turn it on.

- (void)centralManagerDidUpdateState:(CBCentralManager *)central {

    if (central.state == CBCentralManagerStatePoweredOff) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Error" message: @"Please turn on Bluetooth in Settings" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
       [alert show]; 
    }
 }
like image 42
Paulw11 Avatar answered Nov 19 '22 16:11

Paulw11