繁体   English   中英

Mac - 获取电池/充电状态(插入与否)

[英]Mac - Get Battery/Charging Status (Plugged in or not)

我正在构建一个需要每分钟轮询服务器的Mac OSX应用程序,如果用户愿意,甚至更少。 不幸的是,该服务不支持推...

无论如何,我想为用户提供两个选项:

  1. 电池轮询时的轮询间隔
  2. 充电时间隔

如何在Objective C中获得充电器的状态? 只有在插入笔记本电脑的情况下,我才真正关心实际的百分比。 显然,这对桌面来说无关紧要,所以希望有一个适用于笔记本电脑和台式机的解决方案。

看看IOPowerSources API。

首先调用IOPSCopyPowerSourcesInfo()然后IOPSCopyPowerSourcesList()来获取所有可用的功率源的列表。 IOPSGetPowerSourceDescription()将返回包含特定电源信息的字典。 根据文档,密钥kIOPSPowerSourceStateKey描述“当前的电源kIOPSBatteryPowerValue表示电源正在吸取内部电源; kIOPSACPowerValue表示电源连接到外部电源。”

您还可以在使用IOPSNotificationCreateRunLoopSource()更改电源时设置通知。

(注意:我没有测试任何这些,只是查看了文档。)

虽然这个问题确实已经有了一个可以接受我的解决方案的答案,但点击很多很多破损的链接是很痛苦的。

这是我的解决方案:

  1. 添加IOKit.framework
  2. 导入#import <IOKit/ps/IOPowerSources.h>
  3. 码:

     CFTimeInterval timeRemaining = IOPSGetTimeRemainingEstimate(); if (timeRemaining == kIOPSTimeRemainingUnlimited) { // connected to outlet } else if (timeRemaining == kIOPSTimeRemainingUnknown){ // time remaining unknown (recently unplugged) } else if ((timeRemaining / 60) < 30){ // less than 30 minutes remaining } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM