Bluetooth-batterinivåindikatorer kan endelig komme på lager Android slik at Google-, Motorola- og Sony-enheter kan få batterinivået til tilkoblede enheter.
En veldig nyttig funksjon for de av oss med Bluetooth-headset og andre enheter er endelig på vei til AOSP: Bluetooth-batterinivåindikatorer. Dette betyr at brukere av Google, Motorola, Sony og andre enheter med nærliggende Android-programvare bør være det kan fortelle batterinivået til Bluetooth-tilkoblede enheter uten behov for en tredjepart applikasjon. Det er ikke noe å si nøyaktig hvordan denne Bluetooth-batterinivåindikatoren vil vises i sin endelige tilstand, men eksistensen av denne nye API-en i AOSP betyr at utviklere kan implementere Bluetooth-batteriindikatorer uansett hvordan de er som.
Nå, for de av dere på bestemte tilpassede ROM-er (som LineageOS) eller med enheter fra visse produsenter (som de fra Samsung, LG, Huawei, OnePlus eller Xiaomi) er ikke dette en ny funksjon. Batterinivåindikatorer for tilkoblede Bluetooth-enheter har blitt støttet på mange tilpassede ROM-er og tredjeparts OEM-enheter i årevis, men en funksjonen har særlig manglet fra Android Open Source Project (AOSP), noe som betyr at alle Google-telefoner på lagerfastvaren ikke vil støtte den.
Brukere med Bluetooth-enheter som er heldige nok til å ha en ledsagerapplikasjon tilgjengelig på Google Play Store kan hente batterinivåinformasjon på den måten, men ellers er det få alternativer. En populær applikasjon i Play-butikken heter BatON forsøkte å legge til denne funksjonen, men det er ganske begrenset i hvilket utvalg enheter den kan støtte (uten skyld av sine egne) og er også kjent for å være ganske buggy (med mange brukere som rapporterer hyppig Bluetooth-frakobling).
Pris: Gratis.
2.8.
I stedet for å stole på tredjepartsapplikasjoner som enten bare fungerer med en enkelt Bluetooth-enhet du eier, eller som bare støtter en håndfull enheter der ute, det ville vært flott om Google gikk inn for å tilby en funksjon som har vært tilgjengelig på andre enheter for år. Og til slutt ser det ut til at de gjør nettopp det.
Bluetooth Battery Level APIer i AOSP
Bluetooth Special Interest Group (Bluetooth SIG), organet som fører tilsyn med standardene for hver Bluetooth-iterasjon, har allerede definert en batteritjeneste (BAS) i GATT (Generic Attributes-tjenester), men det er opp til Bluetooth å støtte BAS. I følge noen nye forpliktelser vi fant mens vi gravde gjennom AOSP, forbereder Google seg på å legge til nye APIer for å "få den eksterne enhetens batterinivå." Spesielt nevner de følgende tillegg til AOSP:
Legg til APIer for å få ekstern enhets batterinivå
- Legg til BluetoothDevice.getBatteryLevel() API for å hente batterinivåinformasjon for ekstern enhet
- Legg til Bluetooth-enhet. ACTION_BATTERY_LEVEL_CHANGED har til hensikt å varsle brukeren om at den eksterne enhetens batterinivå er endret
- Legg til backend-tjenestemetoder for BluetoothDevice.getBatteryLevel()
- Legg til batterinivåfelt i DeviceProperties med gettere og settere
- Legg til updateBatteryLevel()-metoden i RemoteDevices
- Legg til resetBatteryLevel()-metoden i RemoteDevices
- Tilbakestill batterinivået for enheten når enheten er frakoblet i aclStateChangeCallback() for å sikre en BATTERY_LEVEL_CHANGED hensikt når enheten først rapporterer batterinivåinformasjon etter tilkobling
- Legg til tester for updateBatteryLevel() og resetBatteryLevel()
Fra dette kan vi se at Google vil legge til en ny metode i Bluetooth-enhet klasse kalt getBatteryLevel() som vil hente gjeldende batterinivå til en tilkoblet enhet når den kalles. Ifølge kilden kode, returnerer dette en verdi mellom 0 og 100 (eller -1 hvis Bluetooth er deaktivert, enheten er frakoblet eller ikke støtter rapportering av batterinivå). Derfor betyr dette at det er mulig for batterinivået å vises på en måte som er mer informativ enn en enkel bar. En utvikler kan for eksempel vise et varsel eller en widget med nøyaktig prosentandel.
Men det er ikke alt, et program som abonnerer på ACTION_BATTERY_LEVEL_CHANGED-kringkastingen vil bli varslet når den tilkoblede enhetens batterinivå har endret seg. Med en kringkastingsmottaker vil en applikasjon som lytter etter endringer i den tilkoblede Bluetooth-enhetens batteristatus være varslet når batterinivået er endret, så det vil ikke være behov for å implementere en vedvarende bakgrunnsavstemningstjeneste av noen snill. Denne verdien sendes som et heltall mellom 0 og 100 % gjennom intent-ekstra EXTRA_BATTERY_LEVEL, og applikasjonen kan skille mellom tilkoblede enheter ved å filtrere gjennom intensjonen ekstra EXTRA_DEVICE.
Selv visse enheter som sender batteriinformasjon på sin egen måte, for eksempel Plantronics' XEvent eller Apples VSC, vil også bli støttet. Det jobbes også med å rapportere Bluetooth Low Energy (BLE) batterinivå støttes, selv om dette er oppført som "kan ikke slå sammen" for øyeblikket.
Mulig funksjon for Android 8.1?
Android O er nesten over oss. De fjerde utviklerforhåndsvisning ble nylig utgitt og var hovedsakelig rettet mot feilrettinger, selv om det var noen mindre UI-justeringer her og der. Imidlertid annonserte Google at tredje forhåndsvisning for utviklere inneholdt alle de ferdigstilte Android O APIene som utviklere kan bruke for å gjøre seg klare for neste versjon av Android. Som sådan betyr dette at det nye tilkoblede Bluetooth-batterinivårapporterings-APIet ikke kommer til den første utgivelsen av Android O - Android 8.0.
Det betyr imidlertid ikke at den ikke kommer. Det er mulig at Google vil introdusere denne API-en offisielt (når den faktisk er ferdig) etter hvert utgivelse av Android 8.1. Samtidig kan de til og med bestemme seg for å få denne funksjonen støttet gjennom Android Støttebibliotek, og bringer den til tidligere Android-versjoner. Hvis det ender opp med å skje, trenger ikke brukere å vente flere måneder på å nyte en slik funksjon (selv om vi alltid oppfordrer brukere til å prøve ut en av de mange tilpassede ROM-ene som er tilgjengelige på våre fantastiske fora).
Ikke desto mindre bør dette være spennende nyheter for fans av aksjeprogramvaren på telefonen. Forhåpentligvis trenger du ikke å være sjalu på brukere med Apple, Samsung, Huawei, LG og andre enheter med denne smarte funksjonen som burde vært tilgjengelig i Android for lenge, lenge siden. Gitt den nylige strømningen av støtte for ideen over på Reddit, er vi sikre på at dette vil være en velkommen funksjon - når det etter hvert kommer til lager Android.