Індикатори рівня заряду батареї 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 Open Source Project (AOSP), а це означає, що будь-який телефон Google зі стандартною прошивкою не підтримуватиме це.

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

Користувачі з пристроями Bluetooth, яким пощастило мати супутню програму, доступну на Google Play Store може отримати інформацію про рівень заряду акумулятора таким чином, але в іншому випадку їх небагато параметри. Популярний додаток у Play Store під назвою BatON спробував додати цю функцію, але діапазон пристроїв, який вона може підтримувати, досить обмежений (без вини власне), а також відомо, що він досить поганий (багато користувачів повідомляють про часте відключення Bluetooth).

BatONРозробник: limitium

Ціна: безкоштовно.

2.8.

Завантажити

Замість того, щоб покладатися на програми сторонніх розробників, які або працюють лише з одним вашим пристроєм Bluetooth, або підтримують лише a на кількох пристроях, було б чудово, якби 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 VSC, також буде підтримано. Також ведеться робота над звітуванням про рівень заряду акумулятора Bluetooth Low Energy (BLE). підтримується, хоча наразі це вказано як «неможливо об’єднати».


Можлива функція для Android 8.1?

Android O майже на порозі. The четвертий попередній перегляд для розробників був нещодавно випущений і в основному був спрямований на виправлення помилок, хоча тут і там було кілька незначних змін інтерфейсу користувача. Однак Google оголосив, що третій попередній перегляд для розробників містить усі завершені Android O API, які розробники можуть використовувати для підготовки до наступної версії Android. Таким чином, це означає, що новий API для звітування про рівень заряду акумулятора Bluetooth не потрапить до першого випуску Android O – Android 8.0.

Однак це не означає, що його не буде. Цілком можливо, що Google представить цей API офіційно (коли його фактично буде завершено) з можливим випуск Android 8.1. У той же час вони можуть навіть вирішити, щоб ця функція підтримувалася через Android Бібліотека підтримки, переносячи його до попередніх версій Android. Якщо це станеться, користувачам не доведеться чекати місяцями, щоб насолодитися такою функцією (хоча ми завжди заохочуємо користувачів спробувати один із багатьох користувальницьких ПЗУ, доступних на наших чудових форумах).

Тим не менш, це має бути захоплююча новина для шанувальників стандартного програмного забезпечення на телефоні. Сподіваюся, вам не доведеться заздрити користувачам пристроїв Apple, Samsung, Huawei, LG та інших пристроїв із цією чудовою функцією, яка мала бути доступною в Android дуже-дуже давно. Враховуючи нещодавню хвилю підтримки ідеї over on Reddit, ми впевнені, що ця функція буде довгоочікуваною – коли зрештою мова дійде до стандартного Android.