Bluetooth индикаторите за ниво на батерията най-накрая идват в Android

Bluetooth индикаторите за ниво на батерията може най-накрая да се появят в Android, така че устройствата на Google, Motorola и Sony да могат да получат нивото на батерията на свързаните устройства.

Една наистина полезна функция за тези от нас с Bluetooth слушалки и други устройства най-накрая си проправя път към AOSP: Bluetooth индикатори за ниво на батерията. Това означава, че потребителите на Google, Motorola, Sony и други устройства с почти наличен софтуер за Android трябва да бъдат могат да определят нивото на батерията на своите устройства, свързани с Bluetooth, без да е необходима трета страна приложение. Не може да се каже как точно този индикатор за ниво на батерията на Bluetooth ще се появи в крайното си състояние, но съществуването на този нов API в AOSP означава, че разработчиците могат да прилагат индикатори за батерията на Bluetooth, както и да го правят като.

Сега, за тези от вас, които използват определени персонализирани ROM (като LineageOS) или с устройства от определени производители (като тези от Samsung, LG, Huawei, OnePlus или Xiaomi), това не е нова функция. Индикаторите за ниво на батерията за свързани Bluetooth устройства се поддържат от много потребителски ROM и OEM устройства на трети страни от години, но такъв особено липсва в Android Open Source Project (AOSP), което означава, че нито един телефон на Google със стандартния фърмуер няма да поддържа то.

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

Потребителите с Bluetooth устройства, които имат късмета да имат налично придружаващо приложение на Google Play Store може да извлече информация за нивото на батерията по този начин, но иначе има малко настроики. Популярно приложение в Play Store, наречено Полицейска палка се опита да добави тази функция, но е доста ограничен в това какъв диапазон от устройства може да поддържа (без вина само по себе си) и също така е известно, че е доста бъгово (като много потребители съобщават за често прекъсване на връзката с Bluetooth).

Полицейска палкаРазработчик: limitium

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

2.8.

Изтегли

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


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

Bluetooth Special Interest Group (Bluetooth SIG), органът, който наблюдава стандартите за всяка Bluetooth итерация, вече е дефинирал услуга за батерия (BAS) в ГАТТ (Услуги за общи атрибути), но е за Bluetooth да поддържа BAS. Според някои нови ангажименти, които открихме, докато копаехме в AOSP, Google се готви да добави нови API за да "получите нивото на батерията на отдалеченото устройство." По-специално, те споменават следните допълнения към AOSP:

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

  • Добавете BluetoothDevice.getBatteryLevel() API за извличане на информация за нивото на батерията на отдалеченото устройство
  • Добавяне на 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 и приложението може да прави разлика между свързаните устройства, като филтрира през intent extra 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. Ако това се случи, тогава потребителите няма да чакат месеци, за да се насладят на подобна функция (въпреки че винаги насърчаваме потребителите да изпробват един от многото персонализирани ROM, налични в нашите страхотни форуми).

Независимо от това, това трябва да е вълнуваща новина за феновете на стандартния софтуер на техните телефони. Надяваме се, че няма да ви се налага да завиждате на потребителите с Apple, Samsung, Huawei, LG и други устройства с тази страхотна функция, която трябваше да бъде налична в Android преди много, много време. Като се има предвид неотдавнашното изливане на подкрепа за идеята над Reddit, ние сме сигурни, че това ще бъде добре дошла функция - когато в крайна сметка се стигне до Android.