> and the bluetooth libraries across different devices (particularly in Android land) has me concerned.
I work on the Android side for a company that develops an external bluetooth device (not a wearable, but similar enough) and the bluetooth library situation has certainly been an issue to be concerned about.
Using the default Android bluetooth SDK "raw" is fraught with potential problems, at the very least you need some sort of added message-queue-like system built on top since it does none of this for you. You also have to contend with a lot of strange device specific issues (of the type "works fine on 99% of Android devices, this one Samsung device has a driver quirk we need to work around", etc).
Things looked pretty good with the Jetpack androidx.bluetooth library as a higher level abstraction, but Google suddenly deprecated it and stopped working on it before it left alpha.
After lots of investigations and iterations I ended up using Nordic Semiconductor's 2.0 Kotlin BLE Library, which is technically also still in alpha release, but is much more stable than that designation suggests.
After having messed with all of the options, I highly recommend Nordic's library as a solid basis for using Bluetooth in modern Android/Kotlin, but in your specific situation I'm not sure if bridging it to Rust would be less or more painful than having an LLM generate a Rust wrapper and message queue system over the raw android.bluetooth library.
I work on the Android side for a company that develops an external bluetooth device (not a wearable, but similar enough) and the bluetooth library situation has certainly been an issue to be concerned about.
Using the default Android bluetooth SDK "raw" is fraught with potential problems, at the very least you need some sort of added message-queue-like system built on top since it does none of this for you. You also have to contend with a lot of strange device specific issues (of the type "works fine on 99% of Android devices, this one Samsung device has a driver quirk we need to work around", etc).
Things looked pretty good with the Jetpack androidx.bluetooth library as a higher level abstraction, but Google suddenly deprecated it and stopped working on it before it left alpha.
After lots of investigations and iterations I ended up using Nordic Semiconductor's 2.0 Kotlin BLE Library, which is technically also still in alpha release, but is much more stable than that designation suggests.
https://github.com/nordicsemi/Kotlin-BLE-Library
After having messed with all of the options, I highly recommend Nordic's library as a solid basis for using Bluetooth in modern Android/Kotlin, but in your specific situation I'm not sure if bridging it to Rust would be less or more painful than having an LLM generate a Rust wrapper and message queue system over the raw android.bluetooth library.