我使用下面的代码在我的应用程序中显示电池剩余时间:

-(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/

10-10 09:16