Something is wrong, really wrong, with the Android 13 Bluetooth Stack
As I’m sure many you know, Android 13 introduced the new “Gabeldorsche” Bluetooth (BT) stack, and as far as I can tell there’s a lot wrong with it. Now, that’s not to say that it’s totally broken, that’s not true. It has all the hallmarks of a thing that was tested, and hits an acceptable pass rate for casual use cases, but was never tested to completion. I hesitate to call it a complete dumpster fire, for this reason, and I’m sure there are plenty of “works for me” folks out there who are happy to call it done when their BT headset only snap-crackle-pops some of the time.
Backing up a bit, I recently picked up a Pixel 7 Pro, and immediately noticed some weirdness with Bluetooth. Nothing crazy, but definitely things were off. Frankly, it surprised me that Google shipped in in this state, but not as much as much as the myriad of reviewers that failed to catch it.
So what are the obvious symptoms:
- Flaky audio: This is the one that surprises me the most, because this is how you listen to music on a modern smartphone, and my primary headset ATM is the Pixel Buds Pro. It also reproduces on other headsets, so it’s not just a Pixel Buds Pro problem, and they were working great with my S21. This mostly manifests in micro-dropouts, it’s not a showstopper, but it’s definitely annoying.
- Unstable smartwatch connections: I have a Garmin fēnix 7, which isn’t really a smartwatch, but it does maintain a Bluetooth connection for alerts and sync. This connection isn’t stable, it goes away periodically, and the only way I can get it back is to reboot the phone or turn on airplane mode for a while, then turn airplane mode off. Resetting the Bluetooth stack is a fairly reliable sign that there’s a problem.
- PAAK BTLE OBD II connection issues: This one is super weird. My car supports Phone-As-A-Key (PAAK), when I have the car connected via BT with PAAK, I can’t connect to any Bluetooth Low Energy (BTLE) OBD dongles. I initially thought it was a problem with the OBD dongle that I have, so I bought another one, same problem. Interestingly, it will connect to other types of BTLE devices (like a heart rate sensor), and will connect to BT OBD dongles too.
- Can’t discover devices: Periodically, the phone just can’t find any BT or BTLE devices. The most reliable way to fix this is to reboot it. Things go back to normal. All is good, for a while.
OK, so that’s a lot of problems with the Pixel 7, which is just happens to run Android 13. Why is the post about Android 13 and not the Pixel 7?
That’s a fair question, and the answer is that, I was able to get my hands on a Pixel 6 running Android 12. I ran through as many of these scenarios as I reasonably could, and then I upgraded it to Android 13.
Some of them require longer use, so it was hard to validate 100%, but the PAAK BTLE OBD thing is a solid indicator that it’s an Android 13 problem, and not a [just] a Pixel 7 problem. The Pixel 6 running Android 12, could connect to PAAK and the BTLE OBD II dongle at the same time. The Pixel 6 running Android 13 could not.
I am trying to get my hands on a non-Google Android 13 phone to dig into this more, but that hasn’t been as easy as I’d hoped :).