本文介绍了IOS蓝牙没有发现周边服务。 (有时!)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有时候,我的应用程序会连接到外围设备(即didConnectPeripheral之称),但它不会发现可用的服务(didDiscoverServices不叫)。此外,当这种情况发生的外围设备(一个Adafruit的Bluefruit基础上,nRF8001)会说其没有连接!这只是发生约1/5的应用启动次数的。

低于code的块总是执行:

  FUNC centralManager(中央:CBCentralManager!didDiscoverPeripheral外设:CBPeripheral!advertisementData:[NSObject的:AnyObject]!RSSI:NSNumber的){
     //连接到外设如果一个UART
    如果(peripheral.name ==UART){
        currentPeripheral =外设
        currentPeripheral.delegate =自
        central.connectPeripheral(currentPeripheral,选项:无)
    }
}
 FUNC centralManager(中央:CBCentralManager!didConnectPeripheral外设:CBPeripheral){
    的println()
    的println(连接到:\\(peripheral.name))
    peripheral.discoverServices(无)
    connectionStatus = .Connected
    central.stopScan()
    的println(***停止扫描***)
}

任何想法,为什么didDiscoverServices是不是叫什么名字?

(我运行在一个iPod上的应用触摸第五代)


解决方案

按照 CoreBluetooth编程指南,你应该这样做:

peripheral.delegate = self;

Therefore, your didConnectPeripheral function should look something like this:

func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!) {
        NSLog("peripheral connected")
        peripheral.delegate = self
        peripheral.discoverServices(nil)

    }

这篇关于IOS蓝牙没有发现周边服务。 (有时!)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 21:55