Sprawdź poziom naładowania baterii podłączonych słuchawek Bluetooth w wierszu polecenia

24

Próbuję sprawdzić poziom naładowania baterii w słuchawkach bezprzewodowych z wiersza poleceń. Spotkałem się z kilkoma dyskusjami i wydaje mi się, że wszystko, co muszę zrobić, to wpisać:

ioreg -c 'deviceName' |grep -i batterypercent

Próbowałem tego polecenia za pomocą „Powerbeats Wireless” i „bluetoothaudiod” dla tych 'deviceName', ale żadne nie zwróciło batterypercent. Próbowałem ioreg -c bluetoothaudiod |grep -i batteryuzyskać ogólne informacje o baterii i uzyskać to w odpowiedzi:

| |   +-o AppleSmartBatteryManager  <class AppleSmartBatteryManager, id 0x100000250, registered, matched, active, busy 0 (0 ms), retain 7>
| |     +-o AppleSmartBattery  <class AppleSmartBattery, id 0x100000252, registered, matched, active, busy 0 (0 ms), retain 6>

Po podłączeniu słuchawek do iPhone'a poziom naładowania baterii natychmiast pojawia się na pasku narzędzi. To prowadzi mnie do przekonania, że ​​urządzenie emituje poziom naładowania baterii i że powinienem mieć dostęp do tych informacji z mojego komputera.

Jak mogę sprawdzić poziom naładowania baterii w słuchawkach podłączonych przez bluetooth?

Edytować:

Początkowo myślałem, że problem dotyczy nazwy urządzenia, ale wydaje się "Powerbeats Wireless"i bluetoothaudioddziała zamiennie. Po prostu nie mogę dowiedzieć się, jak uzyskać dostęp do batterypercentparametrów.

Edycja 2:

Patrząc na dokumenty Bluetooth, wydaje się, że istnieje usługa baterii, która ujawnia stan baterii i poziom baterii . Poziom naładowania baterii można odczytać za pomocą podprocedury odczytu wartości charakterystycznej GATT , więc muszę znaleźć sposób na połączenie z tą usługą z poziomu wiersza poleceń. Mam wrażenie, że mogą być kodowane tylko dla standardowych urządzeń peryferyjnych (gładzik, mysz, klawiatura), ponieważ wszystkie widżety monitorowania baterii, które wypróbowałem, są kompatybilne tylko z takimi urządzeniami.batterypercent

Edycja 3:

Ponownie odwiedzam to prawie rok później. Wiem, że mam bezprzewodowy gładzik i klawiaturę i doskonale widzę poziom naładowania baterii (zarówno na pasku narzędzi, jak i w wierszu poleceń). Nadal nie mogę uzyskać poziomu naładowania baterii ze słuchawek i nie jestem pewien, dlaczego: /

pingo
źródło
ioreg -c "Powerbeats Wireless" |grep -i batteryzwraca również ogólne informacje o baterii, więc myślę, że mam prawidłową nazwę urządzenia. Ale dlaczego batterylevelpolecenie nie działa !! Smh
pingo,
Edytuj swoje pytanie zamiast komentować własne pytanie.
At0mic
Edycje @IronCraftMan są teraz zakończone. Myślisz, że możesz zaoferować jakąkolwiek pomoc?
pingo,
Cześć - Chciałbym usłyszeć, czy masz jeszcze więcej. Chcę wydłużyć czas pracy baterii kontrolerów PS4 podłączonych przez BlueTooth do mojego iMaca.
dunxd,
Nie działa również w przypadku moich słuchawek bluetooth JVC. Dziwne, ponieważ mój 5-letni iPhone 4S nie ma problemu z podaniem mi poziomu naładowania baterii po podłączeniu.
John Smith,

Odpowiedzi:

8

Na moim komputerze iMac (macOS 10.12.6) żadne z wyżej wymienionych rozwiązań nie działa. Po przeczytaniu strony podręcznika użytkownika ioreg . Rozwiązanie, które działa na moim komputerze to:

// the -r option is used to reduce output
// the -l option is used to display properties for all object
// by default some object properties are not shown
// the -c specify device class, the class could be specific or general
ioreg -c AppleDeviceManagementHIDEventService -r -l
ioreg -c AppleDeviceManagementHIDEventService -r -l | grep -i battery

// instead of using device io class, you could also use a property key to query
// you need to know one of target device's property key(-k), for example it is BatteryPercent for Bluetooth keyboard and mouse
// any device with this property will be listed
ioreg -r -l -k "BatteryPercent"
ioreg -r -l -k "BatteryPercent" | grep -i battery

Istnieje kilka innych klas urządzeń do wypróbowania argumentu -c: AppleHSBluetoothDevice AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , dają one inne wyjście.

Minghao Ni
źródło
7

Musisz użyć ioreg. Musisz znać nazwę urządzenia. Postępuj zgodnie z tym przewodnikiem.

Krótko mówiąc, przewodnik po prostu uruchomił ioreg -c <devicename> |grep '"BatteryPercent" ='

Przykład:

ioreg -c BeatsBluetoothHeadset |grep '"BatteryPercent" ='

wprowadź opis zdjęcia tutaj

Ponadto możesz uzyskać szersze informacje o baterii za pomocą:

ioreg -c BeatsBluetoothHeadset |grep Battery
wynshaft
źródło
2
Hej, dzięki za odpowiedź! Ten problem wydaje się być specyficzny dla słuchawek Beats, ponieważ mogę uzyskać dostęp do poziomów baterii mojej bezprzewodowej klawiatury i gładzika. Zaktualizuje oryginalne pytanie!
pingo
to nie działa dla mnie
Jadda
1

Właśnie odkryłem, że aby sprawdzić poziom naładowania mojego powerbeats 3 na komputerze Mac, po prostu idę do menu bluetooth w obszarze ikon w prawym górnym rogu ekranu, zatrzymaj wskaźnik myszy nad podłączonymi uderzeniami mocy, a następnie pokaże poziom naładowania baterii. Mam nadzieję, że to pomaga.

Keaton
źródło