react-native-ble-nitro 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -145,6 +145,21 @@ const deviceId = await ble.connect(deviceId, (deviceId, interrupted, error) => {
145
145
  // Connect without disconnect callback
146
146
  const deviceId = await ble.connect(deviceId);
147
147
 
148
+ // You can also use findAndConnect to scan and connect in one step
149
+ // This could be useful for reconnecting after app restart or when device was disconnected unexpectedly
150
+ const deviceId = await ble.findAndConnect(deviceId, {
151
+ scanTimeout: 4000, // default 5000ms
152
+ onDisconnect: (deviceId, interrupted, error) => {
153
+ if (interrupted) {
154
+ console.log('Connection interrupted:', error);
155
+ // Handle unexpected disconnection (out of range, etc.)
156
+ } else {
157
+ console.log('Disconnected intentionally');
158
+ // Handle normal disconnection
159
+ }
160
+ }
161
+ });
162
+
148
163
  // Disconnect from a device
149
164
  await ble.disconnect(deviceId);
150
165
 
@@ -185,6 +200,10 @@ const characteristics = ble.getCharacteristics(deviceId, serviceUUID);
185
200
  const characteristics1 = ble.getCharacteristics(deviceId, '180d'); // Short form
186
201
  const characteristics2 = ble.getCharacteristics(deviceId, '0000180d-0000-1000-8000-00805f9b34fb'); // Long form
187
202
  // Both work identically - conversion handled automatically
203
+
204
+ // Get services with their characteristics
205
+ const servicesWithCharacteristics = await ble.getServicesWithCharacteristics(deviceId);
206
+ // Returns: [{ uuid: '0000180d-0000-1000-8000-00805f9b34fb', characteristics: ['00002a37-0000-1000-8000-00805f9b34fb', ...] }, ...]
188
207
  ```
189
208
 
190
209
  #### 📖 Reading Characteristics
@@ -256,7 +275,16 @@ const HEART_RATE_SERVICE = '180d';
256
275
  const HEART_RATE_MEASUREMENT = '2a37';
257
276
 
258
277
  // Connect and subscribe to heart rate
259
- const deviceId = await ble.connect(heartRateDeviceId);
278
+ const autoConnectOnAndroid = true; // Optional: auto-reconnect on Android
279
+ const deviceId = await ble.connect(
280
+ heartRateDeviceId,
281
+ (deviceId, interrupted, error) => {
282
+ console.log('Device got Disconnected');
283
+ console.log('Was Interrupted?', interrupted);
284
+ console.log('Error:', error);
285
+ },
286
+ autoConnectOnAndroid,
287
+ );
260
288
  await ble.discoverServices(deviceId);
261
289
 
262
290
  const subscription = ble.subscribeToCharacteristic(
@@ -503,7 +503,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
503
503
  override fun connect(
504
504
  deviceId: String,
505
505
  callback: (success: Boolean, deviceId: String, error: String) -> Unit,
506
- disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?
506
+ disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?,
507
+ autoConnectAndroid: Boolean?
507
508
  ) {
508
509
  try {
509
510
  initializeBluetoothIfNeeded()
@@ -531,7 +532,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
531
532
  // Connect to device
532
533
  val context = appContext
533
534
  if (context != null) {
534
- val gatt = device.connectGatt(context, false, gattCallback)
535
+ val autoConnect = autoConnectAndroid ?: false
536
+ val gatt = device.connectGatt(context, autoConnect, gattCallback)
535
537
  connectedDevices[deviceId] = gatt
536
538
  } else {
537
539
  callback(false, deviceId, "Context not available")
@@ -192,7 +192,7 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
192
192
  }
193
193
 
194
194
  // MARK: - Connection Management
195
- public func connect(deviceId: String, callback: @escaping (Bool, String, String) -> Void, disconnectCallback: ((String, Bool, String) -> Void)?) throws {
195
+ public func connect(deviceId: String, callback: @escaping (Bool, String, String) -> Void, disconnectCallback: ((String, Bool, String) -> Void)?, autoConnectAndroid: Bool?) throws {
196
196
  // Find peripheral by identifier
197
197
  guard let peripheral = findPeripheral(by: deviceId) else {
198
198
  callback(false, "", "Peripheral not found")
@@ -72,17 +72,17 @@ export declare class BleNitroManager {
72
72
  * Start scanning for Bluetooth devices
73
73
  * @param filter Optional scan filter
74
74
  * @param callback Callback function called when a device is found
75
- * @returns Promise resolving to success state
75
+ * @returns void
76
76
  */
77
77
  startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
78
78
  /**
79
79
  * Stop scanning for Bluetooth devices
80
- * @returns Promise resolving to success state
80
+ * @returns void
81
81
  */
82
82
  stopScan(): void;
83
83
  /**
84
84
  * Check if currently scanning for devices
85
- * @returns Promise resolving to scanning state
85
+ * @returns Boolean indicating if currently scanning
86
86
  */
87
87
  isScanning(): boolean;
88
88
  /**
@@ -95,9 +95,20 @@ export declare class BleNitroManager {
95
95
  * Connect to a Bluetooth device
96
96
  * @param deviceId ID of the device to connect to
97
97
  * @param onDisconnect Optional callback for disconnect events
98
- * @returns Promise resolving when connected
98
+ * @returns Promise resolving deviceId when connected
99
99
  */
100
- connect(deviceId: string, onDisconnect?: DisconnectEventCallback): Promise<string>;
100
+ connect(deviceId: string, onDisconnect?: DisconnectEventCallback, autoConnectAndroid?: boolean): Promise<string>;
101
+ /**
102
+ * Scans for a device and connects to it
103
+ * @param deviceId ID of the device to connect to
104
+ * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
105
+ * @returns Promise resolving deviceId when connected
106
+ */
107
+ findAndConnect(deviceId: string, options?: {
108
+ scanTimeout?: number;
109
+ autoConnectAndroid?: boolean;
110
+ onDisconnect?: DisconnectEventCallback;
111
+ }): Promise<string>;
101
112
  /**
102
113
  * Disconnect from a Bluetooth device
103
114
  * @param deviceId ID of the device to disconnect from
@@ -107,7 +118,7 @@ export declare class BleNitroManager {
107
118
  /**
108
119
  * Check if connected to a device
109
120
  * @param deviceId ID of the device to check
110
- * @returns Promise resolving to connection state
121
+ * @returns Boolean indicating if device is connected
111
122
  */
112
123
  isConnected(deviceId: string): boolean;
113
124
  /**
@@ -139,15 +150,26 @@ export declare class BleNitroManager {
139
150
  * Get characteristics for a service
140
151
  * @param deviceId ID of the device
141
152
  * @param serviceId ID of the service
142
- * @returns Promise resolving to array of characteristic UUIDs
153
+ * @returns array of characteristic UUIDs
143
154
  */
144
155
  getCharacteristics(deviceId: string, serviceId: string): string[];
156
+ /**
157
+ * Get services and characteristics for a connected device
158
+ * @param deviceId ID of the device
159
+ * @returns Promise resolving to array of service and characteristic UUIDs
160
+ * @see getServices
161
+ * @see getCharacteristics
162
+ */
163
+ getServicesWithCharacteristics(deviceId: string): Promise<{
164
+ uuid: string;
165
+ characteristics: string[];
166
+ }[]>;
145
167
  /**
146
168
  * Read a characteristic value
147
169
  * @param deviceId ID of the device
148
170
  * @param serviceId ID of the service
149
171
  * @param characteristicId ID of the characteristic
150
- * @returns Promise resolving to the characteristic data as ArrayBuffer
172
+ * @returns Promise resolving to the characteristic data as ByteArray
151
173
  */
152
174
  readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
153
175
  /**
@@ -166,7 +188,7 @@ export declare class BleNitroManager {
166
188
  * @param serviceId ID of the service
167
189
  * @param characteristicId ID of the characteristic
168
190
  * @param callback Callback function called when notification is received
169
- * @returns Promise resolving when subscription is complete
191
+ * @returns Subscription
170
192
  */
171
193
  subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Subscription;
172
194
  /**
@@ -179,7 +201,7 @@ export declare class BleNitroManager {
179
201
  unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<void>;
180
202
  /**
181
203
  * Check if Bluetooth is enabled
182
- * @returns Promise resolving to Bluetooth state
204
+ * @returns returns Boolean according to Bluetooth state
183
205
  */
184
206
  isBluetoothEnabled(): boolean;
185
207
  /**
@@ -189,7 +211,7 @@ export declare class BleNitroManager {
189
211
  requestBluetoothEnable(): Promise<boolean>;
190
212
  /**
191
213
  * Get the current Bluetooth state
192
- * @returns Promise resolving to Bluetooth state
214
+ * @returns Bluetooth state
193
215
  * @see BLEState
194
216
  */
195
217
  state(): BLEState;
@@ -197,7 +219,7 @@ export declare class BleNitroManager {
197
219
  * Subscribe to Bluetooth state changes
198
220
  * @param callback Callback function called when state changes
199
221
  * @param emitInitial Whether to emit initial state callback
200
- * @returns Promise resolving when subscription is complete
222
+ * @returns Subscription
201
223
  * @see BLEState
202
224
  */
203
225
  subscribeToStateChange(callback: (state: BLEState) => void, emitInitial?: boolean): Subscription;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
@@ -115,7 +115,7 @@ class BleNitroManager {
115
115
  * Start scanning for Bluetooth devices
116
116
  * @param filter Optional scan filter
117
117
  * @param callback Callback function called when a device is found
118
- * @returns Promise resolving to success state
118
+ * @returns void
119
119
  */
120
120
  startScan(filter = {}, callback, onError) {
121
121
  var _a, _b, _c;
@@ -147,7 +147,7 @@ class BleNitroManager {
147
147
  }
148
148
  /**
149
149
  * Stop scanning for Bluetooth devices
150
- * @returns Promise resolving to success state
150
+ * @returns void
151
151
  */
152
152
  stopScan() {
153
153
  if (!this._isScanning) {
@@ -158,7 +158,7 @@ class BleNitroManager {
158
158
  }
159
159
  /**
160
160
  * Check if currently scanning for devices
161
- * @returns Promise resolving to scanning state
161
+ * @returns Boolean indicating if currently scanning
162
162
  */
163
163
  isScanning() {
164
164
  this._isScanning = NativeBleNitro_1.default.isScanning();
@@ -178,9 +178,9 @@ class BleNitroManager {
178
178
  * Connect to a Bluetooth device
179
179
  * @param deviceId ID of the device to connect to
180
180
  * @param onDisconnect Optional callback for disconnect events
181
- * @returns Promise resolving when connected
181
+ * @returns Promise resolving deviceId when connected
182
182
  */
183
- connect(deviceId, onDisconnect) {
183
+ connect(deviceId, onDisconnect, autoConnectAndroid) {
184
184
  return new Promise((resolve, reject) => {
185
185
  // Check if already connected
186
186
  if (this._connectedDevices[deviceId]) {
@@ -199,7 +199,40 @@ class BleNitroManager {
199
199
  // Remove from connected devices when disconnected
200
200
  delete this._connectedDevices[deviceId];
201
201
  onDisconnect(deviceId, interrupted, error);
202
- } : undefined);
202
+ } : undefined, autoConnectAndroid !== null && autoConnectAndroid !== void 0 ? autoConnectAndroid : false);
203
+ });
204
+ }
205
+ /**
206
+ * Scans for a device and connects to it
207
+ * @param deviceId ID of the device to connect to
208
+ * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
209
+ * @returns Promise resolving deviceId when connected
210
+ */
211
+ findAndConnect(deviceId, options) {
212
+ const isConnected = this.isConnected(deviceId);
213
+ if (isConnected) {
214
+ return Promise.resolve(deviceId);
215
+ }
216
+ if (this._isScanning) {
217
+ this.stopScan();
218
+ }
219
+ return new Promise((resolve, reject) => {
220
+ var _a;
221
+ const timeoutScan = setTimeout(() => {
222
+ this.stopScan();
223
+ reject(new Error('Scan timed out'));
224
+ }, (_a = options === null || options === void 0 ? void 0 : options.scanTimeout) !== null && _a !== void 0 ? _a : 5000);
225
+ this.startScan(undefined, (device) => {
226
+ if (device.id === deviceId) {
227
+ this.stopScan();
228
+ clearTimeout(timeoutScan);
229
+ this.connect(deviceId, options === null || options === void 0 ? void 0 : options.onDisconnect, options === null || options === void 0 ? void 0 : options.autoConnectAndroid).then(async (connectedDeviceId) => {
230
+ resolve(connectedDeviceId);
231
+ }).catch((error) => {
232
+ reject(error);
233
+ });
234
+ }
235
+ });
203
236
  });
204
237
  }
205
238
  /**
@@ -228,7 +261,7 @@ class BleNitroManager {
228
261
  /**
229
262
  * Check if connected to a device
230
263
  * @param deviceId ID of the device to check
231
- * @returns Promise resolving to connection state
264
+ * @returns Boolean indicating if device is connected
232
265
  */
233
266
  isConnected(deviceId) {
234
267
  return NativeBleNitro_1.default.isConnected(deviceId);
@@ -313,7 +346,7 @@ class BleNitroManager {
313
346
  * Get characteristics for a service
314
347
  * @param deviceId ID of the device
315
348
  * @param serviceId ID of the service
316
- * @returns Promise resolving to array of characteristic UUIDs
349
+ * @returns array of characteristic UUIDs
317
350
  */
318
351
  getCharacteristics(deviceId, serviceId) {
319
352
  if (!this._connectedDevices[deviceId]) {
@@ -322,12 +355,29 @@ class BleNitroManager {
322
355
  const characteristics = NativeBleNitro_1.default.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
323
356
  return BleNitroManager.normalizeGattUUIDs(characteristics);
324
357
  }
358
+ /**
359
+ * Get services and characteristics for a connected device
360
+ * @param deviceId ID of the device
361
+ * @returns Promise resolving to array of service and characteristic UUIDs
362
+ * @see getServices
363
+ * @see getCharacteristics
364
+ */
365
+ async getServicesWithCharacteristics(deviceId) {
366
+ await this.discoverServices(deviceId);
367
+ const services = await this.getServices(deviceId);
368
+ return services.map((service) => {
369
+ return {
370
+ uuid: service,
371
+ characteristics: this.getCharacteristics(deviceId, service),
372
+ };
373
+ });
374
+ }
325
375
  /**
326
376
  * Read a characteristic value
327
377
  * @param deviceId ID of the device
328
378
  * @param serviceId ID of the service
329
379
  * @param characteristicId ID of the characteristic
330
- * @returns Promise resolving to the characteristic data as ArrayBuffer
380
+ * @returns Promise resolving to the characteristic data as ByteArray
331
381
  */
332
382
  readCharacteristic(deviceId, serviceId, characteristicId) {
333
383
  return new Promise((resolve, reject) => {
@@ -380,7 +430,7 @@ class BleNitroManager {
380
430
  * @param serviceId ID of the service
381
431
  * @param characteristicId ID of the characteristic
382
432
  * @param callback Callback function called when notification is received
383
- * @returns Promise resolving when subscription is complete
433
+ * @returns Subscription
384
434
  */
385
435
  subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
386
436
  // Check if connected first
@@ -431,7 +481,7 @@ class BleNitroManager {
431
481
  }
432
482
  /**
433
483
  * Check if Bluetooth is enabled
434
- * @returns Promise resolving to Bluetooth state
484
+ * @returns returns Boolean according to Bluetooth state
435
485
  */
436
486
  isBluetoothEnabled() {
437
487
  return this.state() === BLEState.PoweredOn;
@@ -454,7 +504,7 @@ class BleNitroManager {
454
504
  }
455
505
  /**
456
506
  * Get the current Bluetooth state
457
- * @returns Promise resolving to Bluetooth state
507
+ * @returns Bluetooth state
458
508
  * @see BLEState
459
509
  */
460
510
  state() {
@@ -464,7 +514,7 @@ class BleNitroManager {
464
514
  * Subscribe to Bluetooth state changes
465
515
  * @param callback Callback function called when state changes
466
516
  * @param emitInitial Whether to emit initial state callback
467
- * @returns Promise resolving when subscription is complete
517
+ * @returns Subscription
468
518
  * @see BLEState
469
519
  */
470
520
  subscribeToStateChange(callback, emitInitial = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,7 @@ export interface NativeBleNitro extends HybridObject<{
65
65
  stopScan(): boolean;
66
66
  isScanning(): boolean;
67
67
  getConnectedDevices(services: string[]): BLEDevice[];
68
- connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
68
+ connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
69
69
  disconnect(deviceId: string, callback: OperationCallback): void;
70
70
  isConnected(deviceId: string): boolean;
71
71
  requestMTU(deviceId: string, mtu: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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"}
package/lib/manager.d.ts CHANGED
@@ -72,17 +72,17 @@ export declare class BleNitroManager {
72
72
  * Start scanning for Bluetooth devices
73
73
  * @param filter Optional scan filter
74
74
  * @param callback Callback function called when a device is found
75
- * @returns Promise resolving to success state
75
+ * @returns void
76
76
  */
77
77
  startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
78
78
  /**
79
79
  * Stop scanning for Bluetooth devices
80
- * @returns Promise resolving to success state
80
+ * @returns void
81
81
  */
82
82
  stopScan(): void;
83
83
  /**
84
84
  * Check if currently scanning for devices
85
- * @returns Promise resolving to scanning state
85
+ * @returns Boolean indicating if currently scanning
86
86
  */
87
87
  isScanning(): boolean;
88
88
  /**
@@ -95,9 +95,20 @@ export declare class BleNitroManager {
95
95
  * Connect to a Bluetooth device
96
96
  * @param deviceId ID of the device to connect to
97
97
  * @param onDisconnect Optional callback for disconnect events
98
- * @returns Promise resolving when connected
98
+ * @returns Promise resolving deviceId when connected
99
99
  */
100
- connect(deviceId: string, onDisconnect?: DisconnectEventCallback): Promise<string>;
100
+ connect(deviceId: string, onDisconnect?: DisconnectEventCallback, autoConnectAndroid?: boolean): Promise<string>;
101
+ /**
102
+ * Scans for a device and connects to it
103
+ * @param deviceId ID of the device to connect to
104
+ * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
105
+ * @returns Promise resolving deviceId when connected
106
+ */
107
+ findAndConnect(deviceId: string, options?: {
108
+ scanTimeout?: number;
109
+ autoConnectAndroid?: boolean;
110
+ onDisconnect?: DisconnectEventCallback;
111
+ }): Promise<string>;
101
112
  /**
102
113
  * Disconnect from a Bluetooth device
103
114
  * @param deviceId ID of the device to disconnect from
@@ -107,7 +118,7 @@ export declare class BleNitroManager {
107
118
  /**
108
119
  * Check if connected to a device
109
120
  * @param deviceId ID of the device to check
110
- * @returns Promise resolving to connection state
121
+ * @returns Boolean indicating if device is connected
111
122
  */
112
123
  isConnected(deviceId: string): boolean;
113
124
  /**
@@ -139,15 +150,26 @@ export declare class BleNitroManager {
139
150
  * Get characteristics for a service
140
151
  * @param deviceId ID of the device
141
152
  * @param serviceId ID of the service
142
- * @returns Promise resolving to array of characteristic UUIDs
153
+ * @returns array of characteristic UUIDs
143
154
  */
144
155
  getCharacteristics(deviceId: string, serviceId: string): string[];
156
+ /**
157
+ * Get services and characteristics for a connected device
158
+ * @param deviceId ID of the device
159
+ * @returns Promise resolving to array of service and characteristic UUIDs
160
+ * @see getServices
161
+ * @see getCharacteristics
162
+ */
163
+ getServicesWithCharacteristics(deviceId: string): Promise<{
164
+ uuid: string;
165
+ characteristics: string[];
166
+ }[]>;
145
167
  /**
146
168
  * Read a characteristic value
147
169
  * @param deviceId ID of the device
148
170
  * @param serviceId ID of the service
149
171
  * @param characteristicId ID of the characteristic
150
- * @returns Promise resolving to the characteristic data as ArrayBuffer
172
+ * @returns Promise resolving to the characteristic data as ByteArray
151
173
  */
152
174
  readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
153
175
  /**
@@ -166,7 +188,7 @@ export declare class BleNitroManager {
166
188
  * @param serviceId ID of the service
167
189
  * @param characteristicId ID of the characteristic
168
190
  * @param callback Callback function called when notification is received
169
- * @returns Promise resolving when subscription is complete
191
+ * @returns Subscription
170
192
  */
171
193
  subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Subscription;
172
194
  /**
@@ -179,7 +201,7 @@ export declare class BleNitroManager {
179
201
  unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<void>;
180
202
  /**
181
203
  * Check if Bluetooth is enabled
182
- * @returns Promise resolving to Bluetooth state
204
+ * @returns returns Boolean according to Bluetooth state
183
205
  */
184
206
  isBluetoothEnabled(): boolean;
185
207
  /**
@@ -189,7 +211,7 @@ export declare class BleNitroManager {
189
211
  requestBluetoothEnable(): Promise<boolean>;
190
212
  /**
191
213
  * Get the current Bluetooth state
192
- * @returns Promise resolving to Bluetooth state
214
+ * @returns Bluetooth state
193
215
  * @see BLEState
194
216
  */
195
217
  state(): BLEState;
@@ -197,7 +219,7 @@ export declare class BleNitroManager {
197
219
  * Subscribe to Bluetooth state changes
198
220
  * @param callback Callback function called when state changes
199
221
  * @param emitInitial Whether to emit initial state callback
200
- * @returns Promise resolving when subscription is complete
222
+ * @returns Subscription
201
223
  * @see BLEState
202
224
  */
203
225
  subscribeToStateChange(callback: (state: BLEState) => void, emitInitial?: boolean): Subscription;
package/lib/manager.js CHANGED
@@ -104,7 +104,7 @@ export class BleNitroManager {
104
104
  * Start scanning for Bluetooth devices
105
105
  * @param filter Optional scan filter
106
106
  * @param callback Callback function called when a device is found
107
- * @returns Promise resolving to success state
107
+ * @returns void
108
108
  */
109
109
  startScan(filter = {}, callback, onError) {
110
110
  if (this._isScanning) {
@@ -135,7 +135,7 @@ export class BleNitroManager {
135
135
  }
136
136
  /**
137
137
  * Stop scanning for Bluetooth devices
138
- * @returns Promise resolving to success state
138
+ * @returns void
139
139
  */
140
140
  stopScan() {
141
141
  if (!this._isScanning) {
@@ -146,7 +146,7 @@ export class BleNitroManager {
146
146
  }
147
147
  /**
148
148
  * Check if currently scanning for devices
149
- * @returns Promise resolving to scanning state
149
+ * @returns Boolean indicating if currently scanning
150
150
  */
151
151
  isScanning() {
152
152
  this._isScanning = BleNitroNative.isScanning();
@@ -166,9 +166,9 @@ export class BleNitroManager {
166
166
  * Connect to a Bluetooth device
167
167
  * @param deviceId ID of the device to connect to
168
168
  * @param onDisconnect Optional callback for disconnect events
169
- * @returns Promise resolving when connected
169
+ * @returns Promise resolving deviceId when connected
170
170
  */
171
- connect(deviceId, onDisconnect) {
171
+ connect(deviceId, onDisconnect, autoConnectAndroid) {
172
172
  return new Promise((resolve, reject) => {
173
173
  // Check if already connected
174
174
  if (this._connectedDevices[deviceId]) {
@@ -187,7 +187,39 @@ export class BleNitroManager {
187
187
  // Remove from connected devices when disconnected
188
188
  delete this._connectedDevices[deviceId];
189
189
  onDisconnect(deviceId, interrupted, error);
190
- } : undefined);
190
+ } : undefined, autoConnectAndroid ?? false);
191
+ });
192
+ }
193
+ /**
194
+ * Scans for a device and connects to it
195
+ * @param deviceId ID of the device to connect to
196
+ * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
197
+ * @returns Promise resolving deviceId when connected
198
+ */
199
+ findAndConnect(deviceId, options) {
200
+ const isConnected = this.isConnected(deviceId);
201
+ if (isConnected) {
202
+ return Promise.resolve(deviceId);
203
+ }
204
+ if (this._isScanning) {
205
+ this.stopScan();
206
+ }
207
+ return new Promise((resolve, reject) => {
208
+ const timeoutScan = setTimeout(() => {
209
+ this.stopScan();
210
+ reject(new Error('Scan timed out'));
211
+ }, options?.scanTimeout ?? 5000);
212
+ this.startScan(undefined, (device) => {
213
+ if (device.id === deviceId) {
214
+ this.stopScan();
215
+ clearTimeout(timeoutScan);
216
+ this.connect(deviceId, options?.onDisconnect, options?.autoConnectAndroid).then(async (connectedDeviceId) => {
217
+ resolve(connectedDeviceId);
218
+ }).catch((error) => {
219
+ reject(error);
220
+ });
221
+ }
222
+ });
191
223
  });
192
224
  }
193
225
  /**
@@ -216,7 +248,7 @@ export class BleNitroManager {
216
248
  /**
217
249
  * Check if connected to a device
218
250
  * @param deviceId ID of the device to check
219
- * @returns Promise resolving to connection state
251
+ * @returns Boolean indicating if device is connected
220
252
  */
221
253
  isConnected(deviceId) {
222
254
  return BleNitroNative.isConnected(deviceId);
@@ -301,7 +333,7 @@ export class BleNitroManager {
301
333
  * Get characteristics for a service
302
334
  * @param deviceId ID of the device
303
335
  * @param serviceId ID of the service
304
- * @returns Promise resolving to array of characteristic UUIDs
336
+ * @returns array of characteristic UUIDs
305
337
  */
306
338
  getCharacteristics(deviceId, serviceId) {
307
339
  if (!this._connectedDevices[deviceId]) {
@@ -310,12 +342,29 @@ export class BleNitroManager {
310
342
  const characteristics = BleNitroNative.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
311
343
  return BleNitroManager.normalizeGattUUIDs(characteristics);
312
344
  }
345
+ /**
346
+ * Get services and characteristics for a connected device
347
+ * @param deviceId ID of the device
348
+ * @returns Promise resolving to array of service and characteristic UUIDs
349
+ * @see getServices
350
+ * @see getCharacteristics
351
+ */
352
+ async getServicesWithCharacteristics(deviceId) {
353
+ await this.discoverServices(deviceId);
354
+ const services = await this.getServices(deviceId);
355
+ return services.map((service) => {
356
+ return {
357
+ uuid: service,
358
+ characteristics: this.getCharacteristics(deviceId, service),
359
+ };
360
+ });
361
+ }
313
362
  /**
314
363
  * Read a characteristic value
315
364
  * @param deviceId ID of the device
316
365
  * @param serviceId ID of the service
317
366
  * @param characteristicId ID of the characteristic
318
- * @returns Promise resolving to the characteristic data as ArrayBuffer
367
+ * @returns Promise resolving to the characteristic data as ByteArray
319
368
  */
320
369
  readCharacteristic(deviceId, serviceId, characteristicId) {
321
370
  return new Promise((resolve, reject) => {
@@ -368,7 +417,7 @@ export class BleNitroManager {
368
417
  * @param serviceId ID of the service
369
418
  * @param characteristicId ID of the characteristic
370
419
  * @param callback Callback function called when notification is received
371
- * @returns Promise resolving when subscription is complete
420
+ * @returns Subscription
372
421
  */
373
422
  subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
374
423
  // Check if connected first
@@ -419,7 +468,7 @@ export class BleNitroManager {
419
468
  }
420
469
  /**
421
470
  * Check if Bluetooth is enabled
422
- * @returns Promise resolving to Bluetooth state
471
+ * @returns returns Boolean according to Bluetooth state
423
472
  */
424
473
  isBluetoothEnabled() {
425
474
  return this.state() === BLEState.PoweredOn;
@@ -442,7 +491,7 @@ export class BleNitroManager {
442
491
  }
443
492
  /**
444
493
  * Get the current Bluetooth state
445
- * @returns Promise resolving to Bluetooth state
494
+ * @returns Bluetooth state
446
495
  * @see BLEState
447
496
  */
448
497
  state() {
@@ -452,7 +501,7 @@ export class BleNitroManager {
452
501
  * Subscribe to Bluetooth state changes
453
502
  * @param callback Callback function called when state changes
454
503
  * @param emitInitial Whether to emit initial state callback
455
- * @returns Promise resolving when subscription is complete
504
+ * @returns Subscription
456
505
  * @see BLEState
457
506
  */
458
507
  subscribeToStateChange(callback, emitInitial = false) {
@@ -65,7 +65,7 @@ export interface NativeBleNitro extends HybridObject<{
65
65
  stopScan(): boolean;
66
66
  isScanning(): boolean;
67
67
  getConnectedDevices(services: string[]): BLEDevice[];
68
- connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
68
+ connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
69
69
  disconnect(deviceId: string, callback: OperationCallback): void;
70
70
  isConnected(deviceId: string): boolean;
71
71
  requestMTU(deviceId: string, mtu: number): number;
@@ -123,9 +123,9 @@ namespace margelo::nitro::co::zyke::ble {
123
123
  return __vector;
124
124
  }();
125
125
  }
126
- void JHybridNativeBleNitroSpec::connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) {
127
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */)>("connect_cxx");
128
- method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_std__string_cxx::fromCpp(callback), disconnectCallback.has_value() ? JFunc_void_std__string_bool_std__string_cxx::fromCpp(disconnectCallback.value()) : nullptr);
126
+ void JHybridNativeBleNitroSpec::connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) {
127
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */, jni::alias_ref<jni::JBoolean> /* autoConnectAndroid */)>("connect_cxx");
128
+ method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_std__string_cxx::fromCpp(callback), disconnectCallback.has_value() ? JFunc_void_std__string_bool_std__string_cxx::fromCpp(disconnectCallback.value()) : nullptr, autoConnectAndroid.has_value() ? jni::JBoolean::valueOf(autoConnectAndroid.value()) : nullptr);
129
129
  }
130
130
  void JHybridNativeBleNitroSpec::disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
131
131
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("disconnect_cxx");
@@ -58,7 +58,7 @@ namespace margelo::nitro::co::zyke::ble {
58
58
  bool stopScan() override;
59
59
  bool isScanning() override;
60
60
  std::vector<BLEDevice> getConnectedDevices(const std::vector<std::string>& services) override;
61
- void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) override;
61
+ void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) override;
62
62
  void disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
63
63
  bool isConnected(const std::string& deviceId) override;
64
64
  double requestMTU(const std::string& deviceId, double mtu) override;
@@ -70,12 +70,12 @@ abstract class HybridNativeBleNitroSpec: HybridObject() {
70
70
  @Keep
71
71
  abstract fun getConnectedDevices(services: Array<String>): Array<BLEDevice>
72
72
 
73
- abstract fun connect(deviceId: String, callback: (success: Boolean, deviceId: String, error: String) -> Unit, disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?): Unit
73
+ abstract fun connect(deviceId: String, callback: (success: Boolean, deviceId: String, error: String) -> Unit, disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?, autoConnectAndroid: Boolean?): Unit
74
74
 
75
75
  @DoNotStrip
76
76
  @Keep
77
- private fun connect_cxx(deviceId: String, callback: Func_void_bool_std__string_std__string, disconnectCallback: Func_void_std__string_bool_std__string?): Unit {
78
- val __result = connect(deviceId, callback, disconnectCallback?.let { it })
77
+ private fun connect_cxx(deviceId: String, callback: Func_void_bool_std__string_std__string, disconnectCallback: Func_void_std__string_bool_std__string?, autoConnectAndroid: Boolean?): Unit {
78
+ val __result = connect(deviceId, callback, disconnectCallback?.let { it }, autoConnectAndroid)
79
79
  return __result
80
80
  }
81
81
 
@@ -202,6 +202,15 @@ namespace margelo::nitro::co::zyke::ble::bridge::swift {
202
202
  return std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>(value);
203
203
  }
204
204
 
205
+ // pragma MARK: std::optional<bool>
206
+ /**
207
+ * Specialized version of `std::optional<bool>`.
208
+ */
209
+ using std__optional_bool_ = std::optional<bool>;
210
+ inline std::optional<bool> create_std__optional_bool_(const bool& value) {
211
+ return std::optional<bool>(value);
212
+ }
213
+
205
214
  // pragma MARK: std::function<void(bool /* success */, const std::string& /* error */)>
206
215
  /**
207
216
  * Specialized version of `std::function<void(bool, const std::string&)>`.
@@ -123,8 +123,8 @@ namespace margelo::nitro::co::zyke::ble {
123
123
  auto __value = std::move(__result.value());
124
124
  return __value;
125
125
  }
126
- inline void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) override {
127
- auto __result = _swiftPart.connect(deviceId, callback, disconnectCallback);
126
+ inline void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) override {
127
+ auto __result = _swiftPart.connect(deviceId, callback, disconnectCallback, autoConnectAndroid);
128
128
  if (__result.hasError()) [[unlikely]] {
129
129
  std::rethrow_exception(__result.error());
130
130
  }
@@ -19,7 +19,7 @@ public protocol HybridNativeBleNitroSpec_protocol: HybridObject {
19
19
  func stopScan() throws -> Bool
20
20
  func isScanning() throws -> Bool
21
21
  func getConnectedDevices(services: [String]) throws -> [BLEDevice]
22
- func connect(deviceId: String, callback: @escaping (_ success: Bool, _ deviceId: String, _ error: String) -> Void, disconnectCallback: ((_ deviceId: String, _ interrupted: Bool, _ error: String) -> Void)?) throws -> Void
22
+ func connect(deviceId: String, callback: @escaping (_ success: Bool, _ deviceId: String, _ error: String) -> Void, disconnectCallback: ((_ deviceId: String, _ interrupted: Bool, _ error: String) -> Void)?, autoConnectAndroid: Bool?) throws -> Void
23
23
  func disconnect(deviceId: String, callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
24
24
  func isConnected(deviceId: String) throws -> Bool
25
25
  func requestMTU(deviceId: String, mtu: Double) throws -> Double
@@ -202,7 +202,7 @@ open class HybridNativeBleNitroSpec_cxx {
202
202
  }
203
203
 
204
204
  @inline(__always)
205
- public final func connect(deviceId: std.string, callback: bridge.Func_void_bool_std__string_std__string, disconnectCallback: bridge.std__optional_std__function_void_const_std__string_____deviceId_____bool____interrupted_____const_std__string_____error______) -> bridge.Result_void_ {
205
+ public final func connect(deviceId: std.string, callback: bridge.Func_void_bool_std__string_std__string, disconnectCallback: bridge.std__optional_std__function_void_const_std__string_____deviceId_____bool____interrupted_____const_std__string_____error______, autoConnectAndroid: bridge.std__optional_bool_) -> bridge.Result_void_ {
206
206
  do {
207
207
  try self.__implementation.connect(deviceId: String(deviceId), callback: { () -> (Bool, String, String) -> Void in
208
208
  let __wrappedFunction = bridge.wrap_Func_void_bool_std__string_std__string(callback)
@@ -220,7 +220,7 @@ open class HybridNativeBleNitroSpec_cxx {
220
220
  } else {
221
221
  return nil
222
222
  }
223
- }())
223
+ }(), autoConnectAndroid: autoConnectAndroid.value)
224
224
  return bridge.create_Result_void_()
225
225
  } catch (let __error) {
226
226
  let __exceptionPtr = __error.toCpp()
@@ -71,7 +71,7 @@ namespace margelo::nitro::co::zyke::ble {
71
71
  virtual bool stopScan() = 0;
72
72
  virtual bool isScanning() = 0;
73
73
  virtual std::vector<BLEDevice> getConnectedDevices(const std::vector<std::string>& services) = 0;
74
- virtual void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) = 0;
74
+ virtual void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) = 0;
75
75
  virtual void disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
76
76
  virtual bool isConnected(const std::string& deviceId) = 0;
77
77
  virtual double requestMTU(const std::string& deviceId, double mtu) = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ble-nitro",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "High-performance React Native BLE library built on Nitro Modules",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -97,8 +97,8 @@ describe('BleNitro', () => {
97
97
  });
98
98
 
99
99
  const result = await BleManager.connect(deviceId);
100
-
101
- expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), undefined);
100
+
101
+ expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), undefined, false);
102
102
  expect(result).toBe(deviceId);
103
103
  });
104
104
 
@@ -142,7 +142,7 @@ describe('BleNitro', () => {
142
142
 
143
143
  const data = [1, 2, 3];
144
144
  const result = await BleManager.writeCharacteristic('device-write', 'service', 'char', data, false);
145
-
145
+
146
146
  expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
147
147
  'device-write',
148
148
  '0service-0000-1000-8000-00805f9b34fb',
@@ -170,7 +170,7 @@ describe('BleNitro', () => {
170
170
 
171
171
  const data = [1, 2, 3];
172
172
  const result = await BleManager.writeCharacteristic('device-write-resp', 'service', 'char', data, true);
173
-
173
+
174
174
  expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
175
175
  'device-write-resp',
176
176
  '0service-0000-1000-8000-00805f9b34fb',
@@ -196,15 +196,15 @@ describe('BleNitro', () => {
196
196
  });
197
197
 
198
198
  const result = await BleManager.readCharacteristic('device', 'service', 'char');
199
-
199
+
200
200
  // UUIDs should be normalized in the call
201
201
  expect(mockNative.readCharacteristic).toHaveBeenCalledWith(
202
- 'device',
202
+ 'device',
203
203
  '0service-0000-1000-8000-00805f9b34fb', // 'service' padded to 8 chars
204
204
  '0000char-0000-1000-8000-00805f9b34fb', // 'char' padded to 8 chars
205
205
  expect.any(Function)
206
206
  );
207
-
207
+
208
208
  // Result should be number array (ByteArray)
209
209
  expect(Array.isArray(result)).toBe(true);
210
210
  expect(result).toEqual([85]);
@@ -223,7 +223,7 @@ describe('BleNitro', () => {
223
223
  });
224
224
 
225
225
  const result = await BleManager.disconnect('device');
226
-
226
+
227
227
  expect(mockNative.disconnect).toHaveBeenCalledWith('device', expect.any(Function));
228
228
  expect(result).toBe(undefined);
229
229
  });
@@ -245,10 +245,10 @@ describe('BleNitro', () => {
245
245
 
246
246
  const notificationCallback = jest.fn();
247
247
  const subscription = BleManager.subscribeToCharacteristic('device', 'service', 'char', notificationCallback);
248
-
248
+
249
249
  expect(mockNative.subscribeToCharacteristic).toHaveBeenCalled();
250
250
  expect(notificationCallback).toHaveBeenCalledWith('char-id', [1, 2, 3]);
251
-
251
+
252
252
  // Verify subscription object
253
253
  expect(subscription).toHaveProperty('remove');
254
254
  expect(typeof subscription.remove).toBe('function');
@@ -257,10 +257,10 @@ describe('BleNitro', () => {
257
257
  test('connect with disconnect event callback', async () => {
258
258
  const deviceId = 'test-device-2'; // Use different device ID to avoid state conflicts
259
259
  const onDisconnect = jest.fn();
260
-
260
+
261
261
  mockNative.connect.mockImplementation((id: string, callback: (success: boolean, deviceId: string, error: string) => void, disconnectCallback?: (deviceId: string, interrupted: boolean, error: string) => void) => {
262
262
  callback(true, id, '');
263
- // Simulate a disconnect event later
263
+ // Simulate a disconnect event later
264
264
  if (disconnectCallback) {
265
265
  setTimeout(() => {
266
266
  disconnectCallback(id, true, 'Connection lost'); // interrupted = true
@@ -269,10 +269,10 @@ describe('BleNitro', () => {
269
269
  });
270
270
 
271
271
  const result = await BleManager.connect(deviceId, onDisconnect);
272
-
273
- expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), expect.any(Function));
272
+
273
+ expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), expect.any(Function), false);
274
274
  expect(result).toBe(deviceId);
275
-
275
+
276
276
  // Wait for disconnect callback
277
277
  await new Promise(resolve => setTimeout(resolve, 30));
278
278
  expect(onDisconnect).toHaveBeenCalledWith(deviceId, true, 'Connection lost');
@@ -297,7 +297,7 @@ describe('BleNitro', () => {
297
297
  });
298
298
 
299
299
  const rssi = await BleManager.readRSSI('device-rssi');
300
-
300
+
301
301
  expect(mockNative.readRSSI).toHaveBeenCalledWith(
302
302
  'device-rssi',
303
303
  expect.any(Function)
@@ -318,7 +318,7 @@ describe('BleNitro', () => {
318
318
  });
319
319
 
320
320
  await expect(BleManager.readRSSI('device-rssi-fail')).rejects.toThrow('RSSI read failed');
321
-
321
+
322
322
  expect(mockNative.readRSSI).toHaveBeenCalledWith(
323
323
  'device-rssi-fail',
324
324
  expect.any(Function)
package/src/manager.ts CHANGED
@@ -176,7 +176,7 @@ export class BleNitroManager {
176
176
  * Start scanning for Bluetooth devices
177
177
  * @param filter Optional scan filter
178
178
  * @param callback Callback function called when a device is found
179
- * @returns Promise resolving to success state
179
+ * @returns void
180
180
  */
181
181
  public startScan(
182
182
  filter: ScanFilter = {},
@@ -215,7 +215,7 @@ export class BleNitroManager {
215
215
 
216
216
  /**
217
217
  * Stop scanning for Bluetooth devices
218
- * @returns Promise resolving to success state
218
+ * @returns void
219
219
  */
220
220
  public stopScan(): void {
221
221
  if (!this._isScanning) {
@@ -228,7 +228,7 @@ export class BleNitroManager {
228
228
 
229
229
  /**
230
230
  * Check if currently scanning for devices
231
- * @returns Promise resolving to scanning state
231
+ * @returns Boolean indicating if currently scanning
232
232
  */
233
233
  public isScanning(): boolean {
234
234
  this._isScanning = BleNitroNative.isScanning();
@@ -250,11 +250,12 @@ export class BleNitroManager {
250
250
  * Connect to a Bluetooth device
251
251
  * @param deviceId ID of the device to connect to
252
252
  * @param onDisconnect Optional callback for disconnect events
253
- * @returns Promise resolving when connected
253
+ * @returns Promise resolving deviceId when connected
254
254
  */
255
255
  public connect(
256
256
  deviceId: string,
257
- onDisconnect?: DisconnectEventCallback
257
+ onDisconnect?: DisconnectEventCallback,
258
+ autoConnectAndroid?: boolean,
258
259
  ): Promise<string> {
259
260
  return new Promise((resolve, reject) => {
260
261
  // Check if already connected
@@ -277,11 +278,45 @@ export class BleNitroManager {
277
278
  // Remove from connected devices when disconnected
278
279
  delete this._connectedDevices[deviceId];
279
280
  onDisconnect(deviceId, interrupted, error);
280
- } : undefined
281
+ } : undefined,
282
+ autoConnectAndroid ?? false,
281
283
  );
282
284
  });
283
285
  }
284
286
 
287
+ /**
288
+ * Scans for a device and connects to it
289
+ * @param deviceId ID of the device to connect to
290
+ * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
291
+ * @returns Promise resolving deviceId when connected
292
+ */
293
+ public findAndConnect(deviceId: string, options?: { scanTimeout?: number, autoConnectAndroid?: boolean, onDisconnect?: DisconnectEventCallback }): Promise<string> {
294
+ const isConnected = this.isConnected(deviceId);
295
+ if (isConnected) {
296
+ return Promise.resolve(deviceId);
297
+ }
298
+ if (this._isScanning) {
299
+ this.stopScan();
300
+ }
301
+ return new Promise((resolve, reject) => {
302
+ const timeoutScan = setTimeout(() => {
303
+ this.stopScan();
304
+ reject(new Error('Scan timed out'));
305
+ }, options?.scanTimeout ?? 5000);
306
+ this.startScan(undefined, (device) => {
307
+ if (device.id === deviceId) {
308
+ this.stopScan();
309
+ clearTimeout(timeoutScan);
310
+ this.connect(deviceId, options?.onDisconnect, options?.autoConnectAndroid).then(async (connectedDeviceId) => {
311
+ resolve(connectedDeviceId);
312
+ }).catch((error) => {
313
+ reject(error);
314
+ });
315
+ }
316
+ });
317
+ });
318
+ }
319
+
285
320
  /**
286
321
  * Disconnect from a Bluetooth device
287
322
  * @param deviceId ID of the device to disconnect from
@@ -312,7 +347,7 @@ export class BleNitroManager {
312
347
  /**
313
348
  * Check if connected to a device
314
349
  * @param deviceId ID of the device to check
315
- * @returns Promise resolving to connection state
350
+ * @returns Boolean indicating if device is connected
316
351
  */
317
352
  public isConnected(deviceId: string): boolean {
318
353
  return BleNitroNative.isConnected(deviceId);
@@ -409,7 +444,7 @@ export class BleNitroManager {
409
444
  * Get characteristics for a service
410
445
  * @param deviceId ID of the device
411
446
  * @param serviceId ID of the service
412
- * @returns Promise resolving to array of characteristic UUIDs
447
+ * @returns array of characteristic UUIDs
413
448
  */
414
449
  public getCharacteristics(
415
450
  deviceId: string,
@@ -426,12 +461,30 @@ export class BleNitroManager {
426
461
  return BleNitroManager.normalizeGattUUIDs(characteristics);
427
462
  }
428
463
 
464
+ /**
465
+ * Get services and characteristics for a connected device
466
+ * @param deviceId ID of the device
467
+ * @returns Promise resolving to array of service and characteristic UUIDs
468
+ * @see getServices
469
+ * @see getCharacteristics
470
+ */
471
+ public async getServicesWithCharacteristics(deviceId: string): Promise<{ uuid: string; characteristics: string[] }[]> {
472
+ await this.discoverServices(deviceId);
473
+ const services = await this.getServices(deviceId);
474
+ return services.map((service) => {
475
+ return {
476
+ uuid: service,
477
+ characteristics: this.getCharacteristics(deviceId, service),
478
+ };
479
+ });
480
+ }
481
+
429
482
  /**
430
483
  * Read a characteristic value
431
484
  * @param deviceId ID of the device
432
485
  * @param serviceId ID of the service
433
486
  * @param characteristicId ID of the characteristic
434
- * @returns Promise resolving to the characteristic data as ArrayBuffer
487
+ * @returns Promise resolving to the characteristic data as ByteArray
435
488
  */
436
489
  public readCharacteristic(
437
490
  deviceId: string,
@@ -508,7 +561,7 @@ export class BleNitroManager {
508
561
  * @param serviceId ID of the service
509
562
  * @param characteristicId ID of the characteristic
510
563
  * @param callback Callback function called when notification is received
511
- * @returns Promise resolving when subscription is complete
564
+ * @returns Subscription
512
565
  */
513
566
  public subscribeToCharacteristic(
514
567
  deviceId: string,
@@ -588,7 +641,7 @@ export class BleNitroManager {
588
641
 
589
642
  /**
590
643
  * Check if Bluetooth is enabled
591
- * @returns Promise resolving to Bluetooth state
644
+ * @returns returns Boolean according to Bluetooth state
592
645
  */
593
646
  public isBluetoothEnabled(): boolean {
594
647
  return this.state() === BLEState.PoweredOn;
@@ -614,7 +667,7 @@ export class BleNitroManager {
614
667
 
615
668
  /**
616
669
  * Get the current Bluetooth state
617
- * @returns Promise resolving to Bluetooth state
670
+ * @returns Bluetooth state
618
671
  * @see BLEState
619
672
  */
620
673
  public state(): BLEState {
@@ -625,7 +678,7 @@ export class BleNitroManager {
625
678
  * Subscribe to Bluetooth state changes
626
679
  * @param callback Callback function called when state changes
627
680
  * @param emitInitial Whether to emit initial state callback
628
- * @returns Promise resolving when subscription is complete
681
+ * @returns Subscription
629
682
  * @see BLEState
630
683
  */
631
684
  public subscribeToStateChange(callback: (state: BLEState) => void, emitInitial = false): Subscription {
@@ -81,7 +81,7 @@ export interface NativeBleNitro extends HybridObject<{ ios: 'swift'; android: 'k
81
81
  getConnectedDevices(services: string[]): BLEDevice[];
82
82
 
83
83
  // Connection management
84
- connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
84
+ connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
85
85
  disconnect(deviceId: string, callback: OperationCallback): void;
86
86
  isConnected(deviceId: string): boolean;
87
87
  requestMTU(deviceId: string, mtu: number): number;