kable
Android-BLE-Library
Our great sponsors
kable | Android-BLE-Library | |
---|---|---|
8 | 13 | |
739 | 1,879 | |
3.1% | 1.9% | |
8.8 | 7.9 | |
4 days ago | 14 days ago | |
Kotlin | Java | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kable
-
Android BLE
https://github.com/JuulLabs/kable this repo has been active but is notably pre 1.0
-
Why is Android Bluetooth API so hard to use? or did I just use the wrong API?
if you are using BLE & kotlin, I enjoyed using https://github.com/JuulLabs/kable
-
BLE: Bluetoothgatt onServiceDiscovered sometimes contains no services on status 0
The BLE is trash on Android. Try using this for both android and iOS: https://github.com/JuulLabs/kable
-
Recommendations for beginner BLE development.
https://github.com/JuulLabs/kable I have never used this but the readme has a nice overview of the primary areas of how a client interacts with a bluetooth device
-
BLE Communication when app not in focus
unrelated but if you are familiar with coroutines / flow this library is loads better than the archaic android ble sdk https://github.com/JuulLabs/kable
-
I'm working on a demo app for using BLE + MVVM, with a novel approach for using bound services from view models. Would appreciate feedback and review!
As a beginner Android developer trying to develop a BLE app, I found the existing resources out there mostly unhelpful. With this repo I am hoping to build an app that will be helpful for others. I'm using Kable. There are some issues with this app so I'd appreciate feedback and review, even if it is just about the general structure.
-
At a BLE / Android "learning" crossroads.
To write the Android app to do all the BLE stuff, suggest using a third-party library that hides a lot of the gory details. If doing Kotlin, something like https://github.com/JuulLabs/kable or in Java https://github.com/weliem/blessed-android.
-
Bluetooth LE for modern Android Development - part 1
If you are on Kotlin and are proficient on coroutines you can try Kable: https://github.com/JuulLabs/kable wich is very cool to use as long as you have some experience with coroutine jobs and scopes. I think it haves potential to be the best Android BLE library but still is in Beta and there are some weird things still happening (like missing packets when you subscribe on notify) but haves a lot of potential.
Android-BLE-Library
-
Can you create an instance of a class in a Kotlin coroutine and have everything run on that Dispatcher thread?
It feels like Kable & this https://github.com/NordicSemiconductor/Android-BLE-Library are what people use nowadays. Nothing will ever be perfect though because the API is cursed and samsung are incompetent and petty
- Android BLE
-
Why is Android Bluetooth API so hard to use? or did I just use the wrong API?
This library makes it slightly better.
-
OnePlus not supported
Android 13 has introduced a new Bluetooth stack [Gabeldorsche](https://blog.esper.io/android-13-deep-dive/#bluetooth\_gabeldorsche) for Bluetooth Low Energy operations. The nature of the Android ecosystem is that Google releases their "bare-bone" Android OS (AOSP), and other device manufacturers (OEM) modify it to meet their hardware requirement criteria. This enables OEMs to choose their hardware components (case in point here, Bluetooth chip-set) without writing the entire OS layer themselves. With the introduction of this stack, developers have started noticing reliability issues while connecting to Bluetooth Low Energy peripherals LE Privacy enabled. These issues were reported to Google as early as Aug 2022. [Issuetracker](https://issuetracker.google.com/issues/242755161?pli=1) If we go by the reported issues, we will notice instances of devices -- 1) [Tesla keys](https://issuetracker.google.com/issues/242755161#comment29) 2) [Garmin smartwatches](https://issuetracker.google.com/issues/242755161#comment42) 3) [Whoop wearables](https://issuetracker.google.com/issues/242755161#comment198) 4) [Polar wearables](https://issuetracker.google.com/issues/242755161#comment309) not working or not working reliably. While some may have been fixed, some wearables still face these issues. To communicate data between a Bluetooth Low Energy peripheral (Bluetooth wearable) and a Bluetooth Central (typical smartphones in our scenario) must transmit command packets between them. These command packets are intercepted at a hardware layer (HCI layer in case of smartphones; similar driver software layer at wearables) over which application layers (Android app in smartphone, firmware layer at wearables) have no or little control. In the ongoing issue, the communication in these layers is breaking, for which we have no data transmission. To resolve this issue, OEMs (both on the smartphone and wearable side) must devise a solution. This raises a question why are not all Android 13 devices and all wearables facing this issue? How does some pair of smartphone and wearable work fine while others do not? The answer is fragmentation in the Android ecosystem; Google Pixel devices and Samsung devices are notably less affected by this issue. Ultrahuman Ring can transmit data when connecting to these smartphones. In some other manufacturers (like OnePlus, Realme, Mi, etc.), while on the Android 13 version of their OS, our Ring faces data communication problems. As stated earlier, OEMs on the wearable side can too take part in resolving this issue. We manufacture Ultrahuman Ring, and our Bluetooth chip manufacturer is Nordic Semiconductors. They write the driver software for talking to a Bluetooth radio. We have notified them of this issue which they have acknowledged, and are in constant communication to resolve it in both [public forums](https://github.com/NordicSemiconductor/Android-BLE-Library/issues/448) and across private channels. We are exploring options to change hardware components or rewrite the entire firmware to circumvent this issue. Still, the nature of the problem remains that it is hard to stipulate a timeline to fix this issue. We understand the frustration and are actively working to find a solution. We want you to know that our website and FAQs need an update to reflect the current situation, and we will update it accordingly. We appreciate your feedback and assure you that we are taking responsibility for this issue. We will update you on any upcoming updates or firmware that will fix this issue. We hope you continue to believe in our product, and thank you for your patience and understanding. Feel free to let me know if you have more questions.
-
Recommendations for beginner BLE development.
You can use this library. Here is an example app that uses it (the actual code is in the profile_... directories). If you don't use a library you will end up with code like this.
-
some tips for developing an android BLE app
- https://github.com/NordicSemiconductor/Android-BLE-Library
- Hardware suggestion to learn BLE development
-
Android dev has become impossible as a hobby
I developed nrf devices as a hobby. This is their basic app. To proceed, I have to decipher Kotlin and Coroutines, sidestepping new fads it's not that simple for a hobbyist.
-
Sending a value over BLE (Simple)
Read up on GAP (For connecting), GATT(For communicating), and Services(Things that receive/send data i.e. battery service, heartbeat service, etc.) for Ble and understand what they are. Every Service has a UUID, find out what that is and that will be what you write to. Then use a library to write to that Service. We use Nordic's Android library at my company because we use a Nordic board but you can use any one that you like. It is significantly easier with a library than using a stock android solution.
-
Developing an Android app for a fitness tracker that uses a NORDIC 52832 CPU and SI1182 sensor
I'm trying to develop an Android app to get the BP, HRV, HR, SpO2, ECG, PPG, BPM, steps, activity, temperature, sleep quality from Spovan H02 fitness tracker (www.spovan-en.com/.../2669112013571072.html)) which uses NORDIC 52832 CPU and SI1182 sensor. The use of H-Band app (https://play.google.com/store/apps/details?id=com.veepoo.hband&hl=en) is made in the instructions manual, but it doesn't provide the option to save details and that's why I'm building the app. I've discovered the Android BLE Scanner Compat library (https://github.com/NordicSemiconductor/Android-Scanner-Compat-Library)) to scan for the BLE devices and the Android BLE Library (https://github.com/NordicSemiconductor/Android-BLE-Library)) to connect to and communicate with BLE peripherals. I'm not able to proceed further, any help will be appreciated. Thanks in advance.
What are some alternatives?
blessed-android - BLESSED, a Bluetooth Low Energy (BLE) library for Android
Android-Scanner-Compat-Library - A compat library for Bluetooth Low Energy scanning on Android.
Splitties - A collection of hand-crafted extensions for your Kotlin projects.
PeopleInSpace - Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, Compose for Web and Kotlin/JS + React clients along with Ktor backend.
SweetBlue - BLE on Android, the easy way. THIS IS NOW DEPRECATED. Please visit website for info on new versions.
firebase-kotlin-sdk - A Kotlin-first SDK for Firebase
blessed-android-coroutines - BLESSED Coroutines, a Bluetooth Low Energy (BLE) library for Android using Kotlin Coroutines
Telegram - Telegram for Android source
Android-nRF-Toolbox - The nRF Toolbox is a container app that stores your Nordic Semiconductor apps for Bluetooth Low Energy in one location.
RxAndroidBle - An Android Bluetooth Low Energy (BLE) Library with RxJava3 interface