Puede consultar /Library/Preferences/com.apple.Bluetooth.plist
con el defaults
utilidad de línea de comandos para obtener los niveles de batería del Airpod. No utiliza ioreg
pero es bastante extensible.
Algunos ejemplos:
# Parse as XML and store in environment variables
battery_left=$(defaults export /Library/Preferences/com.apple.Bluetooth - | xpath '//dict/key[text()="BatteryPercentLeft"]/following-sibling::integer[1]/text()' 2>/dev/null )
battery_right=$(defaults export /Library/Preferences/com.apple.Bluetooth - | xpath '//dict/key[text()="BatteryPercentRight"]/following-sibling::integer[1]/text()' 2>/dev/null )
battery_case=$(defaults export /Library/Preferences/com.apple.Bluetooth - | xpath '//dict/key[text()="BatteryPercentCase"]/following-sibling::integer[1]/text()' 2>/dev/null )
echo left: $battery_left
echo right: $battery_right
echo case: $battery_case
# Just show values from defaults plist text output
# Left
defaults read /Library/Preferences/com.apple.Bluetooth | grep BatteryPercentLeft | tr -d \; | awk '{print $3}'
# Right
defaults read /Library/Preferences/com.apple.Bluetooth | grep BatteryPercentRight | tr -d \; | awk '{print $3}'
# Case
defaults read /Library/Preferences/com.apple.Bluetooth | grep BatteryPercentCase | tr -d \; | awk '{print $3}'
Mi maletín parece reportar siempre como 0 a menos que los airpods estén en él. Si tienes más de un juego de airpods conectado (o si otros dispositivos devuelven información similar) tendrás que hacer algo más complicado para diferenciar entre varios dispositivos.
Esta entrada del blog tiene más información: https://blog.duklabs.com/airpods-power-in-touchbar/
1 votos
Esta página en AskDifferent puede proporcionar algunas pistas.
0 votos
@IconDaemon He visto la página pero no encuentro ningún dispositivo con BatteryPercent en la lista (ioreg -l) que pueda ser un AirPod.
0 votos
No era el nombre específico, sólo que parecía haber diferentes formas de consultar ioreg.