【问题标题】:Cocoa get Power Adapter StatusCocoa 获取电源适配器状态
【发布时间】:2010-12-29 07:31:36
【问题描述】:

我目前正在开发一个备份应用程序,我最近收到了很多要求添加功能的请求,其中最重要的是添加一个复选框,例如“使用电池供电时备份”,例如 Time Machine有。

那么,有什么方法可以获取电源适配器的状态(插入和插入)?我假设如果有人有一台桌面 Mac,比如 iMac 等,我可能会一直插电。因此,我需要检测计算机是否为便携式的方法。

我认为 IOKit 将是一个可供查看的库,但我根本无法在文档中找到任何内容,这些内容在该框架上几乎不存在。那么,由于它是一个较旧的 Carbon 框架,有没有办法注册一个回调,以便在电源状态更改时调用?这样我就可以正确实现这个复选框的功能了。

如果能帮助我澄清这个问题,我将不胜感激。

【问题讨论】:

标签: cocoa macos-carbon iokit


【解决方案1】:

IOPowerSources.h 具有您需要的功能。从IOPSNotificationCreateRunLoopSource() 开始创建一个运行循环源,并在您的回调中询问以IOPSCopyPowerSourcesInfo() 开头的电源信息并逐步向下运行。可能有更好的例子,但this file 似乎是它如何完成的合理示范;足以让您入门。

【讨论】:

  • 谢谢,我不得不做一些“API Dumpster Diving”,因为我喜欢称它为找到这些方法,但我确实设法弄清楚如何去做,但它似乎是有点低效。它将整个相关信息放入 CFDictionaryRef,然后将其转换为 NSDictionary,我只是按照我习惯的方式访问它。我还使用它来启用该复选框,仅当它是带电池的 Mac 时,当然要检查 IOPSNotification 是否真的需要让我的 Run Loop 比它已经存在的更多。
猜你喜欢
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多