2 votos

¿Cómo puedo leer el nivel de batería de un MacBook en Swift?

He visto muchos post aquí/en SO y muchos docs en la web de Apple sobre la lectura del nivel de batería en iOS, pero ¿cuál es la mejor manera de hacerlo en un MacBook? En el pasado la única manera que he encontrado para hacer esto es con un comando bash que consume tiempo canalizado a grep lo que parece muy ineficiente. (visto y adaptado de, aunque no puedo localizar la fuente original que leí, aquí y aquí ) ¿Existe una forma mejor de hacer esto de forma programada? También he visto este pero parece que sólo tiene una versión Obj-C. Hay alguna manera de hacer esto en Swift?

EDITAR

En realidad hay una forma mejor que no requiere mucho tiempo ( ioreg -l -w0 | grep Capacity muestra la carga actual y la capacidad máxima), pero sigue siendo un bash script aparentemente innecesario.

1voto

Jose Chavez Puntos 645

Sí, se puede hacer completamente en Swift. Mencionas que has encontrado una solución subóptima para ti en el uso de la herramienta de línea de comandos "ioreg". Puedes encontrar el código fuente completo (en C) de la herramienta ioreg aquí - para inspirarte:

https://github.com/opensource-apple/IOKitTools/blob/master/ioreg.tproj/ioreg.c

Esa herramienta obtiene el nivel de batería por ti leyendo las propiedades de los dispositivos de E/S - siendo el nivel de batería una de esas propiedades. Las lee usando una función que en Swift está disponible como IORegistryEntryCreateCFProperties() en el marco del IOKit.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X