iOS : Homekit - 如何检测设备中是不是启用蓝牙和 WiFi 服务?

Posted

技术标签:

【中文标题】iOS : Homekit - 如何检测设备中是不是启用蓝牙和 WiFi 服务?【英文标题】:iOS : Homekit - How to detect Bluetooth & WiFi service enable in device or not?iOS : Homekit - 如何检测设备中是否启用蓝牙和 WiFi 服务? 【发布时间】:2017-05-29 06:40:38 【问题描述】:

当我们尝试添加配件时,主页应用程序会显示以下警报。

我还在我的应用程序中使用了 HomeKit 框架,并希望在用户尝试添加附件时显示警报。

我需要进行哪些更改才能在应用中显示相同的警报?

Screenshot of Home App

【问题讨论】:

蓝牙:***.com/a/21696963/4417447 Wifi 服务:***.com/a/29487450/4417447 【参考方案1】:

对于 ios 中的蓝牙,您有 CBPeripheralManager(在 CoreBluetooth 框架中)。要检查蓝牙连接,请将您的类声明为 CBPeripheralManager 的委托,然后创建一个局部变量:

var myBTManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)

然后,您的类必须实现回调,以便在启用或禁用蓝牙时引起注意。下面的代码是从我的项目中提取的,用于 Beacon 管理器

//BT Manager
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager!) 
    println(__FUNCTION__)
    if peripheral.state == CBPeripheralManagerState.PoweredOn 
        println("Broadcasting...")
        //start broadcasting
        myBTManager!.startAdvertising(_broadcastBeaconDict)
     else if peripheral.state == CBPeripheralManagerState.PoweredOff 
        println("Stopped")
        myBTManager!.stopAdvertising()
     else if peripheral.state == CBPeripheralManagerState.Unsupported 
        println("Unsupported")
     else if peripheral.state == CBPeripheralManagerState.Unauthorized 
        println("This option is not allowed by your application")
    
 

对于 Wifi,看看这个 Github:https://github.com/ashleymills/Reachability.swift

来源答案:-Detecting if Wifi or Bluetooth is turned on or off by the user

【讨论】:

以上是关于iOS : Homekit - 如何检测设备中是不是启用蓝牙和 WiFi 服务?的主要内容,如果未能解决你的问题,请参考以下文章

支持 ios8 HomeKit 的第三方设备?

homekit怎么用

智汀家庭云和Home Assistant分别是如何接入HomeKit,两者之间有何不同?

我是不是需要拥有 Apple Developer ID 才能使用 HomeKit 框架?

使用Olami SDK 语音控制一个支持HomeKit的智能家居的iOS程序

如何以编程方式从 iOS 设备获取自己的手机号码? [复制]