连接到UUID
时,我正在扫描在我的Swift应用程序中工作的单个IBAction: UIButton
。但是,我现在正在尝试让它在应用程序启动时立即开始扫描(由于我将其设置为单个UUID
,因此后台扫描也应正常工作)。
我尝试了我认为合理的方法:
self.centralManager?.scanForPeripheralsWithServices(arrayOfServices, options: nil)
在
viewDidLoad
中,当然arrayOfServices
是UUID
。但这似乎不起作用。我如何让我的应用在启动时寻找外设而没有按下按钮的提示?
最佳答案
您将需要初始化CentralManager,并等待通过CBCentralManagerDelegate调用centralManagerDidUpdateState。确认状态为开机后,即可开始扫描。
func centralManagerDidUpdateState(central: CBCentralManager) {
switch central.state
{
case CBCentralManagerState.PoweredOff:
print("Powered Off")
case CBCentralManagerState.PoweredOn:
print("Powered On")
//Start Scanning Here
self.centralManager?.scanForPeripheralsWithServices(arrayOfServices, options: nil)
case CBCentralManagerState.Unsupported,
CBCentralManagerState.Resetting,
CBCentralManagerState.Unauthorized,
CBCentralManagerState.Unknown:
print("Unexpected CBCentralManager State")
fallthrough
default:
break;
}
}