Tag: android

The case of the deaf BroadcastReceiver

This weekend I decided to upgrade my old Android #nowplaying app. For the new version I decided to use Kotlin and also make it usable from my Android smartwatch. Honestly, it went much smoother than expected, except for one big caveat.

Out of some weird impulse, I decided to target the Oreo SDK (26). Both my phone and my watch are Oreo based, so that wouldn’t be a problem. Yet I kept running into the weird problem that my BroadcastReceivers wouldn’t receive any intents whatsoever. Interestingly enough, the WearableListenerService I used to to listen to Messages from the watch (I want to post when I tap a button on the watch) worked almost instantly.

Sync to my phone

I originally planned to make a Rust program that would fix the broken encodings in my music files. Luckily, I could solve that without Rust. Luckily, because from what I’ve experienced since then, it would’ve been a horrible pain in the ass to do.

I still wanted to give Rust a try. Contributing Servo is pretty much out of question – it’s just too high level to jump into as a complete beginner. (And honestly, I don’t think I’ll get past “complete beginner” with Rust anytime soon if ever.) It wasn’t hard to find another issue.

Android and UTF-8 ID3 tags

Remember I complained about the Unicode tags in some of my MP3 files would be borked really badly on Android? Well, I solved it. Kind of.

For a while I’ve been trying to figure out what could be causing it. Some of my files were fine, some weren’t. Even innocent stuff like umlaut characters in German could break, while Japanese music would be displayed correctly.

Android and Unicode ID3 tags

For a while now I’ve been noticing that certain songs’ ID3 tags are broken when played on my Android phone. I use Black Player which in turn uses the built in Android music libraries – but I’ve checked in a number of other players too just in case and the problem persists.

My music library is extremely multilingual (and most of those languages I don’t even speak), so it’s full of UTF characters. Some of them seem to break Android’s encoding recognition. Sadly some of these triggers are pretty common, resulting in borked last.fm scrobbles. (And of course last.fm can’t be expected to be so smart as to fix all those automatically.)