My ios application uses bluetooth to connect to an accessory. If Bluetooth is not enabled, a popup appears asking me to activate.
I noticed that popup appears every time I run the application.
My question is whether it is possible to display the popup once, ie only after the first launch (fitbit app do that. I also want to know if it is possible to change the language of the popup.
My application is for iOS7 and iOS6
If we can't change the langage, is there a way to disable this popup then i will develop my own view (popup) with localized system ?
Thanks you a lot !
I got the following response from an apple developer :
In iOS7, the CBCentralManagerOptionShowPowerAlertKey
option lets you disable this alert.
If you have a CBCentralManager
, then when you initialise it, you can use the method -[CBCentralManager initWithDelegate:queue:options]
Example:
In my .h file, I have a CBCentralManager * manager
.
In my .m file:
NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO};
_manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
[_manager scanForPeripheralsWithServices:nil options:options];
With this code, the warning no longer appears. I hope that helps!
If you are connecting to accessory devices, you might also be using the CBPeripheralManager
instead of the CBCentralManager
. Tuck me some time to figure this out, because I was using a sdk and couldn't tell what it actually did. But in this case you have to suppress the alert on the peripheral manager. Once the flag is set it will be valid for all other instances of the CBCentralManager
or the CBPeripheralManager
respectively. Im my case, the only reason I instantiated the CBPeripheralManager
at all was to set the flag.
@property CBPeripheralManager *pManager;
*peripheralManager = [[CBPeripheralManager alloc]initWithDelegate:nil queue:nil options:@{CBPeripheralManagerOptionShowPowerAlertKey:@NO}];
Note that you have to assign the instance to a property or it won't work.