【问题标题】:Homekit's HMCharacteristicTypeBrightness does not get current valuesHomekit 的 HMCharacteristicTypeBrightness 没有获取当前值
【发布时间】:2021-06-30 10:34:03
【问题描述】:

我尝试使用以下代码获取当前亮度值。

它收集旧值。

如果我在本机 Home 应用程序中更改灯光的亮度(存储在 lightData[0] 中的相同灯光)并返回我的应用程序并调用以下函数,它会显示正确的值。

我找不到显示当前灯光亮度值的方法。

readValue 假设直接从附件而不是从 iPhone 中的缓冲区。

func getThem() {
        
        lightData[0].characteristic.readValue(completionHandler: {(error) in

            if error != nil {

                print(error!.localizedDescription)

            } else  {

                let type =  self.lightData[0].characteristic.value

                guard let value = (type as? NSNumber)?.intValue

                else {

                    return
                }

                print("values = \(value)")
             
            }       
            
        })
    } 

PS: (我在这里只展示了 lightData[0] 以使代码更具可读性,应用程序收集并存储所有灯光 func homeManagerDidUpdateHomes(_ manager: HMHomeManager) {} 应用启动时的 lightData 结构数组中的数据)

【问题讨论】:

    标签: swift homekit


    【解决方案1】:

    我“发现”如果灯泡的电源状态为 0,则您无法读取或写入亮度级别。

    为了解决这个问题,我读取了电源状态,如果它是 0,我先将其更改为 1,然后再更改亮度级别。

    如果电源状态为 0,则读取亮度级别只是为了显示在屏幕上 我刚刚在我的指示系统中将其设为 0。

    很遗憾,我无法在文档中阅读此内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多