Я пытаюсь проверить уровень заряда батареи моих беспроводных наушников из командной строки. Я наткнулся на несколько обсуждений , и кажется, все, что мне нужно сделать, это ввести следующее:
ioreg -c 'deviceName' |grep -i batterypercent
Я попробовал эту команду, используя «Powerbeats Wireless» и «bluetoothaudiod» для 'deviceName'
, но ни один из них не вернул файл batterypercent
. Я попытался ioreg -c bluetoothaudiod |grep -i battery
получить общую информацию о батарее и получил в ответ следующее:
| | +-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>
Если я подключаю наушники к своему iPhone , уровень заряда батареи сразу выскакивает на панели инструментов. Это наводит меня на мысль, что устройство передает уровень заряда батареи, и что я должен иметь доступ к этой информации с моего компьютера.
Как я могу проверить уровень заряда батареи наушников, подключенных через Bluetooth?
Редактировать:
Изначально я думал, что проблема в названии устройства, но, похоже, они "Powerbeats Wireless"
работают bluetoothaudiod
взаимозаменяемо. Просто не могу понять, как получить доступ к batterypercent
параметру.
Редактировать 2:
Глядя на документы Bluetooth, кажется, что есть служба батареи, которая показывает состояние батареи и уровень заряда батареи . Уровень заряда батареи можно прочитать с помощью подпроцедуры GATT Read Characteristic Value , поэтому мне нужно найти способ взаимодействия с этой службой из командной строки. У меня есть ощущение batterypercent
, что код может быть закодирован только для стандартных периферийных устройств (трекпад, мышь, клавиатура), так как все виджеты мониторинга батареи, которые я пробовал, совместимы только с такими устройствами.
Редактировать 3:
Пересматриваю это почти год спустя. Я знаю, что у меня есть беспроводной трекпад и клавиатура, и я прекрасно вижу уровень заряда батареи (как на панели инструментов, так и в командной строке). Тем не менее, я все еще не могу получить уровень заряда батареи в наушниках, и не знаю, почему :/
На моем iMac (macOS 10.12.6) ни одно из упомянутых выше решений не работает. После прочтения справочной страницы ioreg . Решение, которое работает на моем компьютере:
// 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
Есть и другие классы устройств, которые можно использовать для аргумента -c: AppleHSBluetoothDevice AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , они дают другой результат.
Ни один из ответов не работает для меня.
Это приложение работает для меня:
https://github.com/jariz/Akku/ (примечание: этот инструмент больше не разрабатывается и не будет работать в Монтеррее или позже)
Это с открытым исходным кодом и бесплатно.
Не забудьте скачать версию 0.1.0-beta.10.
Вам нужно использовать ioreg
. Вам нужно знать имя устройства. Просто следуйте этому руководству.
Короче говоря, руководствоioreg -c <devicename> |grep '"BatteryPercent" ='
Пример:
ioreg -c BeatsBluetoothHeadset |grep '"BatteryPercent" ='
Кроме того, вы можете получить более широкую информацию об аккумуляторе с помощью:
ioreg -c BeatsBluetoothHeadset |grep Battery
Я только что обнаружил, что, чтобы проверить уровень заряда батареи моего powerbeats 3 на моем Mac, я просто захожу в меню Bluetooth в области значков в правом верхнем углу экрана, наводит курсор на подключенные powerbeats, и тогда он показывает уровень заряда батареи прямо там. Надеюсь, это поможет.
Этот набор флагов сводит вывод к минимуму, а следующий код дает вам просто процент в виде числа.
ioreg -r -n AppleDeviceManagementHIDEventService -k BatteryPercent | perl -nE '/"BatteryPercent" = (\d++)/ && say $1'
Я использую это с BetterTouchTool.
0xПинго
ioreg -c "Powerbeats Wireless" |grep -i battery
также возвращает общую информацию о батарее, поэтому я думаю, что у меня есть правильное имя устройства. Но почемуbatterylevel
команда не работает!! смшAt0mic
0xПинго
Данксд
Джон Смит
древико