Apple, like every other vendor, does not have a choice but to implement this as a proprietary characteristic. Pre-BLE, other vendors copied Apple's de-facto `HFP AT+IPHONEACCEV` standard for reporting battery levels to the OS.
They could publish the details, and not block other manufacturer details, so that it is easier for other platforms to develop drivers for them. Or develop a new standard that works for their earbuds.
I need to know individual levels to do that
companies actually can build and ship stuff that isn't inter-operable with the world, this is Actually Good for user experience
Imagine if every human on the planet would operate like this.
We'd be back in the Stone Ages.
> companies actually can build and ship stuff that isn't inter-operable with the world, this is Actually Good for user experience
...
god forbid someone prioritize concrete user experience over abstract interoperability
- Multi-device Connectivity
- Accessibility Settings and Hearing Aid
While the following are exclusive to Apple devices for market reasons:
- Receive Battery Information
- Set/Receive ANC Modes
- Set Adaptive Audio Noise settings
- Receive In-Ear detection Status
- Personalized Volume (use at your own risk - might randomly boost volume to some high level)
- Conversational Awareness
- Ear Detection
- Siri (Voice assistant on long stem press)
- Hold and Press configuration
- Head Tracking (for Spatial Audio and Head Gestures)
- Rename AirPods
https://github.com/kavishdevar/librepods/issues/20
I imagine limiting such features to Apple devices is more about incentivizing the Apple Ecosystem than quality or software concerns
They have a basic app for some of their other devices like the Beats line. One other thing you simply can't do without pairing AirPods with an Apple device is enrol them in AppleCare One.
Care to offer a justification for why this is the case without resorting to "the multi-trillion-dollar behemoth can't be bothered to build an app"?
It's not uncommon (at least for me) to have a low earbud battery level (because I've just binged Slow Horses) or a low container battery (because I've just charged the earbuds from the container for the third time and drained the container). There's a suggestion above that you should "just choose the lowest one because 99% of the time that's what you're interested in", except that's not true in the second case.
I'm fairly sure that if you could report both, then Apple would report both using this hypothetical standard method, but since you can't, and there's no easy way to just "choose one" without misleading the user about something, they choose to do it properly, even though that means it's an Apple-only thing.
As additional evidence, there are "AirPods-like" earbuds on the market such as the Sony WF-C700N, which have no problem reporting three battery levels over standard Bluetooth on e.g. Linux.
[0] https://www.bluetooth.com/wp-content/uploads/Files/Specifica...
The Bluetooth Battery Service spec allows for a single device with multiple batteries
As of version 1.1 of the battery service which was finalized at the end of 2022. Given Bluetooth's track record, who knows what kind of interoperability landmines exist.No, implementing multiple instances of the Battery Service to report battery state for several batteries has been there since the 1.0 spec. [0]
This spec was released in 2011, five years before the first AirPods were released.
Doing what several commenters claimed was impossible has in fact been possible with native Bluetooth for a decade and a half.
[0] https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?d...
If you'd bothered to dig into the spec, v1.0 basically says do what you want. v1.1 defines a proper namespace and well known descriptions for multiple batteries. Apple did well to avoid the interoperability minefield.
> If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones.
I own and use lots of devices, for both work and personal tasks, including Apple and non-Apple devices. I own a pair of AirPods. I'd like them to work well across all the platforms that I use. There is nothing technically preventing Apple from achieving this, aside from Apple's arguably illegal tying behavior.
> If you'd bothered to dig into the spec, v1.0 basically says do what you want. v1.1 defines a proper namespace and well known descriptions for multiple batteries. Apple did well to avoid the interoperability minefield.
I have read the spec; please don't accuse me of not reading it. Have you written Bluetooth device firmware before? In case you haven't, at a high level:
* The BT device exposes a "profile," which defines one or more "services", which are essentially different types of data that can be read from or written to the device.
* Multiple instances of the same type of service (the Battery Service in this case) can be exposed in the profile. I don't know if this ability was always present in the spec or was added after the fact, but it was, at minimum, present in 2011 when the BAS 1.0 spec was released.
* So, if your device has more than one battery, its profile will have an instance of the Battery Service defined for each one.
I will grant that the 1.1 spec document is a lot clearer and provides lots of diagrammed examples, but the only net new functionality in 1.1 are a set of new battery-related fields (these are called out near the beginning).
1.0 absolutely does not say "do what you want."
When a device has more than one instance of the Battery service, each Battery
Level characteristic shall include a Characteristic Presentation Format
descriptor that has a namespace/description value that is unique for that
instance of the Battery service.
1.1 says: When a device has more than one instance of the Battery Service, each Battery
Level characteristic shall include a Characteristic Presentation Format descriptor
(Volume 3, Part G, Section 3.3.3.5 in [1]) that has the Name Space field set to
”Bluetooth SIG” and the Description field set to a valid value from the GATT
Namespace Descriptors [4] and that is unique among all instances of the Battery
Service exposed by the GATT Server.
1.0 was a mess and your anger over a poorly defined and relatively minor feature seems quite misplaced. Bluetooth interoperability has historically been a mess (still is from my experience). But go ahead be big mad that Airpods only play audio from third party devices and don't provide battery status in a way that adheres to a recent revision of the standard. Meanwhile I'm sure Sony would never use a proprietary format ever…On the subject of the multi-trillion-dollar behemoth, Apple is a private company. If you have the capital, you can acquire a controlling interest and then they’ll work on whatever you like. Until then, you’re out of luck.
Companies are not acts of God or nature. They are a private company operating on a society that allows it to exist because it is believed to be the for the public good. The public has very much the right to question it's practices, and if they are anti consumer, monopolistic, or a list of other things, to correct them. Shareholders be damned.
Like a lot of parts of the (especially earlier revisions of) Bluetooth spec the battery status took a slapdash approach to defining things. Look at anyone who's used Bluetooth on Windows to see what a nightmare interoperability still is. So Apple released ear buds that implement poorly defined parts of the spec but otherwise work with third party bluetooth devices, and that's bad?
Yikes.
Meanwhile, the Bluetooth SIG released an update at the end of 2022 that actually starts to require some sort of standardization. You know who's name was on that little update? Big bad awful anticompetitive Apple.
No, it's not. The Bluetooth Battery Service spec allows for a single device with multiple batteries and individual battery reporting for each. [0] They even give the example in that doc of earbuds which are one “logical device” but two physically separate pieces, each with its own battery.
> On the subject of the multi-trillion-dollar behemoth, Apple is a private company.
Apple is, by definition, a public company.
> If you have the capital, you can acquire a controlling interest and then they’ll work on whatever you like. Until then, you’re out of luck.
No. Anticompetitive behavior such as tying (what I would argue is happening here) can and should always be subject to examination, criticism, and possible litigation by the public.
[0] https://www.bluetooth.com/wp-content/uploads/Files/Specifica...
Ugh, trillion dollar market value doesn't mean they are incapable of making a basic android app. Check their move to ios app if you have any doubts.
The argument about whether they ought to is in some other thread I imagine, you might have lost your way. I don't own their airpods so in this particular instance, IDC about the outcome.
Caps for emphasis, not frustration.
Except for the biggest obstacle of it all in capitalism: capital.
If that's the only way anyone can try to change companies' behaviours we are in a lot of trouble :)
> Apple is a private company
https://www.nasdaq.com/market-activity/stocks/aaplAs a neurodivergent person I lack the innate human skill to filter voices out of a cacaphony of noise so loud bars etc are hell. There also the "talking with earphones in is rude" but that's an issue that can just be explained.
Needing root to enable it is a major deal-breaker though :( and moving to an iPhone is impossible for me. Too much stuff that's not supported.