Swift에서 MacBook의 배터리 잔량을 어떻게 읽을 수 있습니까?

Nov 15 2020

iOS에서 배터리 잔량을 읽는 것에 대한 Apple 웹 사이트의 많은 게시물과 Apple 웹 사이트의 많은 문서를 보았지만 MacBook에서 이것을 수행하는 가장 좋은 방법은 무엇입니까? 과거에 내가이 작업을 수행하는 유일한 방법은 시간이 많이 걸리는 bash 명령을으로 파이프하는 grep것인데, 이는 매우 비효율적으로 보입니다. (본문 및 수정 된대로, 내가 읽은 원본 소스를 찾을 수는 없지만 여기 및 여기 ) 프로그래밍 방식으로이 작업을 수행하는 더 좋은 방법이 있습니까? 나는 또한 이것을 보았지만 Obj-C 버전 만있는 것 같습니다. Swift에서 이것을 수행하는 방법이 있습니까?

편집하다

실제로 상당한 시간이 걸리지 않는 더 나은 방법 ( ioreg -l -w0 | grep Capacity현재 충전 및 최대 용량 표시)이 있지만 여전히 불필요한 bash 스크립트입니다.

답변

1 jksoegaard Nov 16 2020 at 03:59

예, Swift에서 완전히 할 수 있습니다. "ioreg"명령 줄 도구를 사용할 때 차선책을 찾았다 고 말씀하셨습니다. 영감을 얻으려면 여기에서 ioreg 도구의 전체 소스 코드 (C)를 찾을 수 있습니다.

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

이 도구는 I / O 장치의 속성을 읽어 배터리 수준을 가져옵니다. 배터리 수준은 이러한 속성 중 하나입니다. Swift 에서 IOKit 프레임 워크에서 IORegistryEntryCreateCFProperties () 로 사용할 수있는 함수를 사용하여 읽습니다 .