12

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

蓝牙弹出

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

我的问题是是否可以显示一次弹出窗口,即仅在第一次启动后(fitbit 应用程序会这样做。我还想知道是否可以更改弹出窗口的语言。

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

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

非常感谢你!

4

2 回答 2

21

我从一位苹果开发人员那里得到以下回复:在 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];

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

于 2013-10-16T10:11:37.987 回答
3

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

@property CBPeripheralManager *pManager;

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

请注意,您必须将实例分配给属性,否则它将不起作用。

于 2016-01-20T12:43:56.610 回答