First off, I found a well-documented unofficial SDK for the Mi Band - I actually haven't tried it out and thus I won't go into detail with this option. For the sake of completeness, I decided to include it in this reply.
Xiaomi, the company behind the Mi Band, has an SDK for Android (as well as iOS). It has been released in 2015 and according to a few online reports it seems to be still working. Unfortunately, it's only available in Simplified Chinese, though with the usage of a good translation software you should be able to read it.
Under their FAQ they also include two contact options in case you have any questions, for one their email, being DevFit@xiaomi.com
and a Tencent QQ group id: 385428920
. For reference here is the translated version:
If you encounter any problems during the integration, please contact us: DevFit@xiaomi.com. You can also add QQ group: 385428920, there will be engineers in the group to answer your questions.
The mentioned SDK has a huge variety of available data points such as TYPE_BODY_FAT_PERCENTAGE
, TYPE_HEART_RATE_BPM
, TYPE_SPEED
and many more. All well documented and explained what datatype you will receive, how you can request it. (cf. 2. Basic concepts and 3. Data Format).
After doing further digging, I found an updated documentation from September of 2020. The whole documentation is written in Chinese, though it includes the whole process from account creation and verification to publishing an App which requests, for example information from the Mi Band.
This doesn't imply that the other options above don't work - it's just an updated version, hence I highly suggest to check and evaluate the different possibilities in order to find a proper solution to the problem - many roads lead to Rome.