java – Is there a way to find out what a bluetooth LE device listens to? – Code Utility


I have a bluetooth LE device that is powered by its developer’s app.
Sadly it is not maintained anymore and therefore I intend to rewrite the app from scratch.

Additionally it is not possible to pair to the device. It only listens to BLE.

Is it possible in any way to find out, how the device is being controlled?

I tried to decompile the code via JADX but since the manufacturer is chinese and decompilation already comes with its own problems, I thought if it would be possible to find it out without this procedure. (GitHub)App-Decompiled-Code (External)Original-APK-Download-Page


It depends what the device is really. There are number of profiles/services defined in the Bluetooth standard. If the device uses one of them then you could design from the specification rather than the device/app.

A good place to start is to use a generic Bluetooth Low Energy scanning and exploration tool such as nRF Connect to explore the device. Find out the UUIDs of the services and characteristics and compare it to the assigned 16-bit UUIDs values on

If it has a custom BLE profile/service then you can still use the nRF Connect app to explore it. If it is not obvious how to access the data or what commands need to be sent, then looking at the HCI logs on the phone after using the developer’s app might be helpful.