Перевірте рівень заряду акумулятора підключених навушників Bluetooth з командного рядка


24

Я намагаюся перевірити рівень заряду акумулятора моїх бездротових навушників з командного рядка. Я натрапив на кілька дискусій , і, здається, все, що мені потрібно зробити, це ввести наступне:

ioreg -c 'deviceName' |grep -i batterypercent

Я спробував цю команду, використовуючи "Powerbeats Wireless" і "bluetoothaudiod" для 'deviceName''s, але жоден не повернув 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 , тому мені потрібно з’ясувати спосіб взаємодії з цією послугою з командного рядка. У мене є відчуття, що вони можуть бути кодовані лише для стандартних периферійних пристроїв (трекпад, миша, клавіатура), оскільки всі віджети, які я намагався контролювати батарею, сумісні лише з такими пристроями.batterypercent

Редагувати 3:

Переглянувши це майже через рік. Я знаю, що у вас є бездротовий трекпад та клавіатура, і вони добре бачать рівень їх акумулятора (як на панелі інструментів, так і в командному рядку). Хоча не вдається отримати рівень заряду батареї в навушниках, і не впевнений, чому: /


ioreg -c "Powerbeats Wireless" |grep -i batteryтакож повертає загальну інформацію про акумулятор, тому я думаю, що у мене є правильна назва пристрою. Але чому batterylevelкоманда не працює !! Smh
pingo

Відредагуйте своє питання, а не коментувати власне запитання.
At0mic

Зміни @IronCraftMan зараз завершені. Ви думаєте, що можете запропонувати будь-яку допомогу?
пінго

Привіт - мені цікаво почути, якщо у вас є далі. Я хочу отримати термін служби акумулятора з контролерів PS4, підключених BlueTooth до мого iMac.
dunxd

Не працює і для Bluetooth навушників JVC. Дивно, адже мій 5-річний iPhone 4S не має жодних проблем повідомити мені про рівень заряду акумулятора, коли він підключений.
Джон Сміт

Відповіді:


8

На моєму 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 , вони дають різний вихід.


7

Вам потрібно користуватися ioreg. Вам потрібно буде знати назву пристрою. Просто дотримуйтесь цього керівництва.

Коротше кажучи, у вашому посібнику ви працюєте ioreg -c <devicename> |grep '"BatteryPercent" ='

Приклад:

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

введіть тут опис зображення

Крім того, ви можете отримати більш широку інформацію про акумулятор за допомогою:

ioreg -c BeatsBluetoothHeadset |grep Battery

2
Гей, дякую за вашу відповідь! Ця проблема, здається, характерна для навушників Beats, оскільки я можу отримати доступ до рівня заряду акумулятора для своєї бездротової клавіатури та трекпада. Буде оновлено початкове запитання!
пінго

це не працює для мене
Jadda

1

Щойно я виявив, що для перевірки рівня заряду акумулятора 3 на моєму Mac я просто переходжу до меню Bluetooth в області значків у верхньому правому куті екрана, наведіть курсор миші на підключені потужності та потім він показує рівень акумулятора прямо там. Сподіваюся, що це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.