2010-08-23 3 views
2

Я хочу написать небольшое приложение для Mac, и мне нужно, чтобы процентная доля батареи и клавиатуры была подключена через Bluetooth. Кто-нибудь может сказать мне, есть ли какой-нибудь API для этого?Доступ к статусу батареи мыши и клавиатуры по API

+0

бит длинного выстрела но вы можете сделать это с помощью applescript – PurplePilot

ответ

1

Я знаю, что это немного поздно, будучи более 18 месяцев после того, как вы задали вопрос, но вот немного кода я использую в статусе батареи:

mach_port_t  masterPort; 
kern_return_t kr; 
io_iterator_t ite; 
io_object_t  obj = 0; 
CFMutableDictionaryRef properties; 

kr = IOMasterPort(bootstrap_port, &masterPort); 
if (kr != KERN_SUCCESS) 
    printf("IOMasterPort() failed: %x\n", kr); 

kr = IORegistryCreateIterator(masterPort, 
           kIOServicePlane, 
           true, 
           &ite); 

while ((obj = IOIteratorNext(ite))) 
{ 
    kr = IORegistryEntryCreateCFProperties(obj, 
              &properties, 
              kCFAllocatorDefault, 
              kNilOptions); 

    if ((kr != KERN_SUCCESS) || !properties) { 
     printf("IORegistryEntryCreateCFProperties error %x\n", kr); 
    } 

    else 
    { 
     CFNumberRef percent = (CFNumberRef) CFDictionaryGetValue(properties, CFSTR("BatteryPercent")); 
     if (percent) 
     { 
      SInt32 s; 
      if(!CFNumberGetValue(percent, kCFNumberSInt32Type, &s)) 
      { 
       printf("***CFNumber overflow***\n"); 
      } 

      else 
      { 
       NSDictionary *deviceProperties = (__bridge NSDictionary *)properties; 
       //Use the key @"BatteryPercent" in this dictionary to access the battery percent of any bluetooth mouse, keyboard, or trackpad connected. 
      } 
     } 
    } 
} 

Надежда, что помогает ... если вы используете spotlight, чтобы найти приложение IORegistryExplorer, которое может помочь выяснить, какие другие ключи могут быть полезны для использования в словаре, чтобы найти другую полезную информацию (например, имя или тип устройства.)

Смежные вопросы