如果蓝牙已关闭iOS,请禁用警告对话框

时间:2013-10-10 13:09:05

标签: ios objective-c ios6 bluetooth ios7

我的ios应用程序使用蓝牙连接到附件。如果未启用蓝牙,则会出现一个弹出窗口,要求我激活。

Bluetooth Popup

我注意到每次运行应用程序时都会出现弹出窗口。

我的问题是,是否可以显示弹出窗口,即仅在第一次启动后显示(fitbit app do that。我还想知道是否可以更改弹出窗口的语言。

我的应用程序适用于iOS7和iOS6

如果我们无法改变语言,有没有办法禁用此弹出窗口,那么我将使用本地化系统开发自己的视图(弹出窗口)?

非常感谢你!

2 个答案:

答案 0 :(得分:20)

我得到了苹果开发者的以下回复: 在iOS7中,CBCentralManagerOptionShowPowerAlertKey选项允许您禁用此警报。

如果您有CBCentralManager,那么在初始化时,您可以使用方法-[CBCentralManager initWithDelegate:queue:options]

实施例

在我的.h文件中,我有CBCentralManager * manager

在我的.m文件中:

NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO};

_manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];

[_manager scanForPeripheralsWithServices:nil options:options];

使用此代码,警告不再出现。我希望有所帮助!

答案 1 :(得分:3)

如果您要连接附件设备,则可能还在使用CBPeripheralManager而不是CBCentralManager。告诉我一些时间来解决这个问题,因为我使用的是sdk并且无法分辨它实际上做了什么。但在这种情况下,您必须禁止外围设备管理器上的警报。设置标志后,它将分别对CBCentralManagerCBPeripheralManager的所有其他实例有效。在我的情况下,我实例化CBPeripheralManager的唯一原因是设置标志。

@property CBPeripheralManager *pManager;

*peripheralManager = [[CBPeripheralManager alloc]initWithDelegate:nil queue:nil options:@{CBPeripheralManagerOptionShowPowerAlertKey:@NO}];

请注意,您必须将实例分配给属性,否则它将无效。