我使用下面的代码在我的应用程序中显示电池剩余时间:
-(int)getLeftTimeMinutes{
CFMutableDictionaryRef matching , properties = NULL;
io_registry_entry_t entry = 0;
matching = IOServiceMatching( "IOPMPowerSource" );
entry = IOServiceGetMatchingService( kIOMasterPortDefault , matching );
IORegistryEntryCreateCFProperties( entry , &properties , NULL , 0 );
NSDictionary* arr = CFBridgingRelease(properties);
NSNumber *AvgTimeToEmpty = [arr objectForKey:@"TimeRemaining"];
if (AvgTimeToEmpty == nil) {
return 0;
}
return [AvgTimeToEmpty integerValue];
}
问题
如果用户使用的是台式机,那么我需要显示一条消息,指出您已直接连接到交流电源。
如何确定用户拥有台式机?
我的研究
StackOver Flow:如果找到类似的问题,但他们提供的解决方案是获取系统的型号。如果使用此方法,则将需要不断更新型号,以免我的代码不实用。
请建议我该怎么办...
非常感谢您的关注。
最佳答案
我认为您应该使用IOPSGetTimeRemainingEstimate函数,如果连接到无限的电源,它将返回kIOPSTimeRemainingUnlimited
。别忘了,mac book也可能也已连接到交流电源。
关于objective-c - cocoa :obj-c如何识别它是台式机还是笔记本电脑?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34220713/