You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,35 +18,36 @@ It contains applications demonstrating standard Bluetooth LE profiles:
18
18
19
19
> [!Note]
20
20
> The Proximity profile is not included in this version of the app.
21
-
> If you need it, please download the previous [version](https://github.com/NordicSemiconductor/Android-nRF-Toolbox/releases/tag/3.3.1).
21
+
> If you need it, please download the previous [version](https://github.com/nordicsemi/Android-nRF-Toolbox/releases/tag/3.3.1).
22
22
23
23
### How to import to Android Studio
24
24
25
25
The production version of nRF Toolbox depends on
26
-
[Kotlin BLE Library](https://github.com/NordicSemiconductor/Kotlin-BLE-Library). The single profile implementation This also utilizes [Nordic Android Common Library](https://github.com/NordicPlayground/Android-Common-Libraries),
27
-
which contains utility classes such as Bluetooth LE permission, Bluetooth LE scanner, and so on, used by apps developed by Nordic Semiconductor.
26
+
[Kotlin BLE Library](https://github.com/nordicsemi/Kotlin-BLE-Library) for Bluetooth LE connectivity, and [Nordic Android Common Library](https://github.com/nordicsemi/Android-Common-Libraries),
27
+
which contains utility classes such as Bluetooth LE permission, Bluetooth LE scanner, etc.
28
28
29
29
### BLE Profile Service
30
30
31
31
The `ProfileService` is responsible for managing Bluetooth Low Energy (BLE) connections in a centralized way.
32
32
It runs as a foreground service, maintaining connections to multiple devices, handling lifecycle events, and exposing device data to bound components (e.g., activities or fragments).
33
33
34
34
#### Overview
35
-
The service establishes and maintains BLE connections via the `CentralManager`. Connections are kept alive independently of any activity or fragment lifecycle. When the UI component unbinds from the service, the connections remain active, ensuring uninterrupted data flow.
35
+
The service establishes and maintains BLE connections via the `CentralManager`. Connections are kept alive independently of Activity lifecycle. When the UI component unbinds from the service, the connections remain active, ensuring uninterrupted data flow.
36
+
36
37
All connected devices are tracked, and their states (connection, services, disconnections) are published using a `StateFlow`.
37
38
38
39
#### Key Features
39
40
40
41
- Single Service for All Devices:
41
-
Instead of running a separate service per device, one ProfileService manages all active connections.
42
+
Instead of running a separate service per device, one `ProfileService` manages all active connections.
42
43
43
44
- Connection Lifecycle: Starts a connection when `onStartCommand` is triggered with a device address. Cleans up and disconnects gracefully when no devices remain connected. Publishes disconnection events with reasons for UI handling.
44
45
45
46
- Device State Management:
46
-
Keeps a map of devices and their DeviceData (address, state, services). Tracks missing services and notifies observers if required services are unavailable.
47
+
Keeps a map of devices and their `DeviceData` (address, state, services). Tracks missing services and notifies observers if required services are unavailable.
47
48
48
49
- Service Discovery & Management:
49
-
Discovers services after connection. New profiles can be added by implementing a ServiceManager subclass.
50
+
Discovers services after connection. New profiles can be added by implementing a `ServiceManager` subclass.
50
51
51
52
- Logging:
52
53
Integrates with *nRF Logger* to provide per-device logs. Each device connection initializes its own logger instance.
@@ -58,19 +59,19 @@ just 2 characteristics, one for sending data and one for receiving. A UART prese
58
59
Each of them, when pressed, will send the stored command to the device. The UART profile is included in the profile list and is managed in the same way as other profiles.
59
60
60
61
> [!Note]
61
-
> The Device Firmware Update (DFU) feature has been removed from this application and is now offered in [nRF DFU](https://github.com/NordicSemiconductor/Android-DFU-Library) (for devices with Legacy and Secure DFU from nRF5 SDK) or [nRF Connect Device Manager](https://github.com/NordicSemiconductor/Android-nRF-Connect-Device-Manager) (for devices based on nRF Connect SDK or Zephyr).
62
+
> The Device Firmware Update (DFU) feature has been removed from this application and is now offered in [nRF DFU](https://github.com/nordicsemi/Android-DFU-Library) (for devices with Legacy and Secure DFU from nRF5 SDK) or [nRF Connect Device Manager](https://github.com/nordicsemi/Android-nRF-Connect-Device-Manager) (for devices based on nRF Connect SDK or Zephyr).
62
63
63
64
### Dependencies
64
65
65
-
nRF Toolbox depends on [Kotlin BLE Library](https://github.com/NordicSemiconductor/Kotlin-BLE-Library)
66
+
nRF Toolbox depends on [Kotlin BLE Library](https://github.com/nordicsemi/Kotlin-BLE-Library)
66
67
which may be cloned into the same root folder as this app.
67
68
68
69
The nRF Toolbox also uses the [nRF Logger API library](https://github.com/NordicSemiconductor/nRF-Logger-API).
69
70
This library allows the app to create log entries in
Please, read the library documentation on GitHub for more information about the usage and permissions.
72
73
73
-
The [Kotlin-Utils-Library](https://github.com/NordicSemiconductor/Kotlin-Util-Library.git) is used for different `ByteArray` operations during profile data parsing.
74
+
The [Kotlin-Utils-Library](https://github.com/nordicsemi/Kotlin-Util-Library.git) is used for different `ByteArray` operations during profile data parsing.
74
75
75
76
The graph in the HRM profile is created using the [MPAndroidChart v3.1.0](https://github.com/PhilJay/MPAndroidChart)
76
77
contribution based on the [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0).
0 commit comments