Table of contents
  1. onStopScan
  2. onDidUpdateState
  3. onDiscoverPeripheral
  4. onDidUpdateValueForCharacteristic
  5. onConnectPeripheral
  6. onDisconnectPeripheral
  7. onPeripheralDidBond
  8. onCentralManagerWillRestoreState [iOS only]
  9. onDidUpdateNotificationStateFor [iOS only]
  10. onCompanionPeripheral [Android only]
  11. onCompanionFailure [Android only]

Events

Since react-native version 0.76, events are handled with specific methods that return the listener.

Examples

useEffect(() => {
  const onStopListener = BleManager.onStopScan((args) => {
    // Scanning is stopped args.status
  });

  return () => {
    onStopListener.remove();
  };
    
}, []);

onStopScan

The scanning for peripherals is ended.

Arguments


onDidUpdateState

The BLE state changed.

Arguments

  • state - String - the new BLE state. Can be one of unknown (iOS only), resetting (iOS only), unsupported, unauthorized (iOS only), on, off, turning_on (android only), turning_off (android only).

onDiscoverPeripheral

The scanning found a new peripheral.

Arguments

  • id - String - the id of the peripheral
  • name - String - the name of the peripheral
  • rssi - Number - the RSSI value
  • advertising - JSON - the advertising payload, here are some examples:
    • isConnectable - Boolean
    • serviceUUIDs - String[]
    • manufacturerData - JSON - contains a json with the company id as field (4-digit lowercase hex string, e.g. "004c" for Apple) and the custom value as raw bytes and data (Base64 encoded string). On Android, if the same company id is in both the advertising packet and the scan response, the data is merged in that order. On iOS, the data is the manufacturer data as reported by CoreBluetooth
    • manufacturerRawData - JSON - contains the raw bytes and data (Base64 encoded string) of the manufacturer data: the 2-byte company id in little-endian order followed by the data (e.g. company 0xAABB with data 01 02 03 04 -> bb aa 01 02 03 04), same format on Android and iOS. Before this version, Android used a 4-byte big-endian company id (00 00 aa bb)
    • serviceData - JSON - contains the raw bytes and data (Base64 encoded string)
    • txPowerLevel - Int
    • rawData - [Android only] JSON - contains the raw bytes and data (Base64 encoded string) of all the advertising data

onDidUpdateValueForCharacteristic

A characteristic notified a new value.

Event will only be emitted after successful startNotification.

Arguments

  • value — Number[] — the read value
  • peripheral — String — the id of the peripheral
  • characteristic — String — the UUID of the characteristic
  • service — String — the UUID of the characteristic

onConnectPeripheral

A peripheral was connected.

Arguments

  • peripheral - String - the id of the peripheral
  • status - Number - [Android only] connect reasons

onDisconnectPeripheral

A peripheral was disconnected.

Arguments


onPeripheralDidBond

A bond with a peripheral was established.

Arguments

Object with information about the device.


onCentralManagerWillRestoreState [iOS only]

This is fired when centralManager:WillRestoreState: is called (app relaunched in the background to handle a bluetooth event).

For more on performing long-term bluetooth actions in the background:

iOS Bluetooth State Preservation and Restoration

iOS Relaunch Conditions

Arguments

  • peripherals - Array - an array of previously connected peripherals.

onDidUpdateNotificationStateFor [iOS only]

The peripheral received a request to start or stop providing notifications for a specified characteristic’s value.

Arguments

  • peripheral - String - the id of the peripheral
  • characteristic - String - the UUID of the characteristic
  • isNotifying - Boolean - Is the characteristic notifying or not
  • domain - String - [iOS only] error domain
  • code - Number - [iOS only] error code

onCompanionPeripheral [Android only]

User picked a device to associate with.

Null if the request was cancelled by the user.

Arguments

  • id - String - the id of the peripheral
  • name - String - the name of the peripheral
  • rssi - Number - the RSSI value

onCompanionFailure [Android only]

Associate callback received a failure or failed to start the intent to pick the device to associate.