iOS11蓝牙有点奇怪
<p><p>当我在设置中关闭蓝牙时,我使用 <code>CBCentralManager</code> 来获取蓝牙的状态,如下所示:</p>
<pre><code>self.bluetoothManager = [ initWithDelegate:self queue:nil];
</code></pre>
<p>系统将显示如下警告:<a href="/image/y32Og.jpg" rel="noreferrer noopener nofollow">system alert</a> </p>
<p>蓝牙的当前状态是<code>CBManagerStatePoweredOff</code>。但是当我在控制中心关闭蓝牙时,即使蓝牙的当前状态仍然是 <code>CBManagerStatePoweredOff</code>,此警报也不再显示。 </p>
<p>在这种情况下如何提醒用户开启蓝牙? </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您可以通过实现以下 <strong>delegate</strong> 方法来提醒用户。</p>
<pre><code>//Bluetooth state delegation
#pragma mark - CBCentralManagerDelegate
- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
NSString *stateString = nil;
switch(self.CBManager.state)
{
case CBManagerStateResetting:
stateString = @"The connection with the system service was momentarily lost, update imminent.";
break;
case CBManagerStateUnsupported:
stateString = @"The platform doesn't support Bluetooth Low Energy."; break;
case CBManagerStateUnauthorized: stateString = @"The app is not authorized to use Bluetooth Low Energy.";
break;
case CBManagerStatePoweredOff:
stateString = @"Bluetooth is currently powered off.";
break;
case CBManagerStatePoweredOn:
;
;
break;
case CBManagerStateUnknown:
stateString = @"State unknown, update imminent.";
break;
}
NSLog(@"%@", stateString);
}
</code></pre>
<p>现在应该自动通知用户。</p></p>
<p style="font-size: 20px;">关于iOS11蓝牙有点奇怪,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/46426163/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/46426163/
</a>
</p>
页:
[1]