Lo que quería hacer es tomar un registro de porcentaje de batería. Sé que el equivalente en Linux es sysctl (hw.acpi.battery.life). Sin embargo, cuando revisé el hombre de sysctl en mac os x no encontré el código equivalente para encontrarlo. ¿Puede alguien señalar cómo hacer esto usando el objetivo c. Puedo llamar a sysctlbyname pero eso no tiene esto como entrada en su estructura. Amablemente ayúdeme por favor¿Cómo obtener la duración de la batería de mac os x macbooks programáticamente?
Respuesta
Pruebe usar IOKit y las funciones IOPowerSources. Puede usar IOPSCopyPowerSourcesInfo() para obtener un blob y IOPSCopyPowerSourcesList() para extraer un CFArray de eso, enumerando las fuentes de alimentación. Finalmente puede usar el IOPSGetPowerSourceDescription() para tomar el diccionario.
Si puede utilizar la línea de comandos, puede utilizar el comando pmset
así:
$ pmset -g
+1 en IOPowerSources –
más específicamente 'pmset -g batt' show's the battery percentage y estado. – DebugXYZ
@Dominic la mayoría de los enlaces en su publicación están muertos. –
se puede utilizar ioreg en la línea de comandos también. Por ejemplo:
ioreg -l -w0 |grep CurrentCapacity
le da el estado actual de la batería, que puede compararse a la capacidad máxima:
ioreg -l -w0 |grep MaxCapacity
Otra manera de conseguir algo más de información sobre el estado de la batería es utilizar NSTask para ejecutar la Mandato system_profiler con SPPowerDataType como argumento. En mi Mac, me da los siguientes resultados:
información de la batería:
Model Information:
Serial Number: W01396THJD3LA
Manufacturer: SMP
Device Name: bq20z451
Pack Lot Code: 0
PCB Lot Code: 0
Firmware Version: 201
Hardware Revision: 000a
Cell Revision: 165
Charge Information:
Charge Remaining (mAh): 5013
Fully Charged: Yes
Charging: No
Full Charge Capacity (mAh): 5086
Health Information:
Cycle Count: 72
Condition: Normal
Battery Installed: Yes
Amperage (mA): -300
Voltage (mV): 12303
Para recuperar lo que en concreto, se puede o bien analizar las líneas adecuadas, o generar un plist con este comando:
$ system_profiler SPPowerDataType -xml> BatteryInfo.plist
Esto facilitaría la recuperación de los valores, en función de claves específicas.
- 1. Mac OS X - cambiar el tamaño programáticamente de Windows
- 2. ¿Se ejecuta programáticamente al inicio en Mac OS X?
- 3. Recuperando la dirección IP del Proxy Mac OS X
- 4. ¿Cómo obtener el tipo de archivo en Mac OS X?
- 5. Mac OS X: CGGetLastMouseDelta y moviendo el mouse programáticamente
- 6. ¿Cómo obtener la ruta de la carpeta de fuentes en Mac OS X?
- 7. Cómo eliminar la instalación de MySQL en Mac OS X
- 8. ¿Cómo puedo determinar la versión Mac OS X en ejecución programáticamente?
- 9. Cómo obtener JDK 1.5 en Mac OS X
- 10. Dirección MAC de la interfaz en OS X (C)
- 11. JNotify en Mac OS X?
- 12. Mac OS X Nuevos usuarios de la línea de comandos
- 13. Mac OS X View Swapping
- 14. Obtener datos RTF de Mac OS X cartón (portapapeles)
- 15. ¿Cómo obtener la pantalla DPI (linux, mac) programáticamente?
- 16. Actualizaciones de aplicaciones en Mac OS X
- 17. UIActivityIndicatorView para Mac OS X?
- 18. Cómo obtener la ubicación de las carpetas de usuario en Mac OS X usando Objective-C
- 19. desinstalar ipython mac os x
- 20. ¿Cómo obtener la posición del cursor relativa a la ventana en Mac OS X?
- 21. ldconfig para Mac OS X
- 22. Arquitectura de la aplicación Cocoa en Mac OS X
- 23. clamxav homebrew mac os x
- 24. Obteniendo la posición "global" del mouse en Mac OS X
- 25. Desarrollo de Blackberry en Mac OS X
- 26. GKSession con Mac OS X
- 27. SetWindowsHookEx para Mac OS X?
- 28. ¿Cómo obtener el estado de la batería?
- 29. Obtener la transmisión de la cámara web en Mac Os X en Java
- 30. ¿Cómo configurar libusb en Mac OS X?
Quizás intente agregar una etiqueta "objetivo-c". Todavía no tengo el representante para editar, lamentablemente. –
Posible duplicado de [Estado de la batería en OSX?] (Http://stackoverflow.com/questions/272552/battery-status-in-osx) –