Индикаторы уровня заряда батареи Bluetooth наконец-то появятся на Android

Индикаторы уровня заряда батареи Bluetooth могут наконец появиться в стандартной версии Android, чтобы устройства Google, Motorola и Sony могли получать информацию об уровне заряда батареи подключенных устройств.

Действительно полезная функция для тех из нас, у кого есть Bluetooth-гарнитуры и другие устройства, наконец-то появилась в AOSP: индикаторы уровня заряда батареи Bluetooth. Это означает, что пользователи Google, Motorola, Sony и других устройств с почти стандартным программным обеспечением Android должны быть способны определить уровень заряда батареи своих устройств, подключенных через Bluetooth, без необходимости использования сторонних устройств. приложение. Неизвестно, как именно этот индикатор уровня заряда батареи Bluetooth будет выглядеть в конечном состоянии, но Наличие этого нового API в AOSP означает, что разработчики могут реализовать индикаторы заряда батареи Bluetooth любым способом. нравиться.

Теперь для тех из вас, кто использует определенные пользовательские ПЗУ (например, LineageOS) или устройства определенных производителей (например, Samsung, LG, Huawei, OnePlus или Xiaomi), это не новая функция. Индикаторы уровня заряда батареи для подключенных устройств Bluetooth уже много лет поддерживаются на многих пользовательских ПЗУ и сторонних OEM-устройствах, но такой эта функция явно отсутствовала в проекте Android с открытым исходным кодом (AOSP), а это означает, что любой телефон Google со стандартной прошивкой не будет поддерживать это.

Индикатор уровня заряда батареи Samsung Bluetooth
Индикатор уровня заряда батареи OnePlus Bluetooth
Индикатор уровня заряда батареи LG Bluetooth

Пользователи устройств Bluetooth, которым посчастливилось иметь сопутствующее приложение, доступное на Google Play Store может таким образом получать информацию об уровне заряда батареи, но в остальном их мало. параметры. Популярное приложение в Play Store под названием БатОН попытались добавить эту функцию, но она весьма ограничена в диапазоне устройств, которые она может поддерживать (не по вине сам по себе), а также известен как довольно глючный (многие пользователи сообщают о частом отключении Bluetooth).

БатОНРазработчик: лимитиум

Цена: Бесплатно.

2.8.

Скачать

Вместо того, чтобы полагаться на сторонние приложения, которые либо работают только с одним вашим Bluetooth-устройством, либо поддерживают только существует несколько устройств, было бы здорово, если бы Google вмешался и предложил функцию, которая была доступна на других устройствах для годы. И, наконец, похоже, что они делают именно это.


API уровня заряда батареи Bluetooth в AOSP

Специальная группа по интересам Bluetooth (Bluetooth SIG), орган, контролирующий стандарты для каждой итерации Bluetooth, уже определила службу батареи (BAS) в ГАТТ (службы общих атрибутов), но Bluetooth должен поддерживать BAS. Согласно некоторым новым коммитам, которые мы обнаружили при копании в AOSP, Google готовится добавить новые API чтобы «получить уровень заряда батареи удаленного устройства». В частности, они упоминают следующие дополнения к AOSP:

Добавьте API для получения уровня заряда батареи удаленного устройства.

  • Добавьте API BluetoothDevice.getBatteryLevel() для получения информации об уровне заряда батареи удаленного устройства.
  • Добавьте Bluetooth-устройство. ACTION_BATTERY_LEVEL_CHANGED намерение уведомить пользователя об изменении уровня заряда батареи удаленного устройства.
  • Добавьте методы внутренней службы для BluetoothDevice.getBatteryLevel().
  • Добавьте поле уровня заряда батареи в DeviceProperties с помощью геттеров и сеттеров.
  • Добавьте метод updateBatteryLevel() в RemoteDevices.
  • Добавьте метод resetBatteryLevel() в RemoteDevices.
  • Сбросьте уровень заряда батареи устройства, когда устройство отключено в aclStateChangeCallback(), чтобы обеспечить намерение BATTERY_LEVEL_CHANGED, когда устройство впервые сообщает информацию об уровне заряда батареи после подключения.
  • Добавьте тесты для updateBatteryLevel() и resetBatteryLevel().

Отсюда мы видим, что Google добавит новый метод в Bluetooth-устройство класс под названием getBatteryLevel(), который при вызове будет получать текущий уровень заряда батареи подключенного устройства. По данным источника код, это возвращает значение от 0 до 100 (или -1, если Bluetooth отключен, устройство отключено или не поддерживает отчет об уровне заряда батареи). Следовательно, это означает, что уровень заряда батареи может отображаться более информативно, чем простая полоса. Например, разработчик может показать уведомление или виджет с точным процентом.

Но это еще не все: приложение, которое подписывается на широковещательное намерение ACTION_BATTERY_LEVEL_CHANGED, будет уведомлено, когда уровень заряда батареи подключенного устройства изменится. При использовании широковещательного приемника приложение, отслеживающее изменения состояния батареи подключенного устройства Bluetooth, будет уведомляется об изменении уровня заряда батареи, поэтому нет необходимости внедрять службу постоянного фонового опроса добрый. Это значение отправляется в виде целого числа от 0 до 100 % с помощью дополнительного EXTRA_BATTERY_LEVEL, а приложение может различать подключенные устройства, фильтруя дополнительные намерения EXTRA_DEVICE.

Даже некоторые устройства, которые отправляют информацию об аккумуляторе по-своему, например, Plantronics XEvent или Apple ВСК, также будет поддерживаться. Также ведется работа над созданием отчетов об уровне заряда батареи Bluetooth Low Energy (BLE). поддерживается, хотя на данный момент это указано как «невозможно объединить».


Возможная функция для Android 8.1?

Android O уже почти на подходе. четвертый предварительный просмотр для разработчиков был выпущен недавно и в основном был направлен на исправление ошибок, хотя здесь и там было несколько незначительных изменений пользовательского интерфейса. Однако Google объявил, что третий предварительный просмотр для разработчиков представлены все доработанные API-интерфейсы Android O, которые разработчики могут использовать для подготовки к следующей версии Android. Таким образом, это означает, что новый API отчетности об уровне заряда батареи Bluetooth не появится в первой версии Android O — Android 8.0.

Однако это не значит, что его не будет. Вполне возможно, что Google официально представит этот API (когда он будет завершен) с возможным выпуск Андроид 8.1. В то же время они могут даже решить, чтобы эта функция поддерживалась через Андроид Библиотека поддержки, перенеся его в более ранние версии Android. Если это в конечном итоге произойдет, то пользователям не придется ждать месяцами, чтобы воспользоваться такой функцией (хотя мы всегда рекомендуем пользователям опробовать одно из множества пользовательских ПЗУ, доступных на наших замечательных форумах).

Тем не менее, это должна быть интересная новость для поклонников стандартного программного обеспечения на телефонах. Надеемся, вам не придется завидовать пользователям Apple, Samsung, Huawei, LG и других устройств с этой изящной функцией, которая должна была быть доступна в Android уже очень давно. Учитывая недавнюю волну поддержки этой идеи на Реддит, мы уверены, что это будет долгожданная функция, когда она в конечном итоге выйдет на стандартный Android.