> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rebellapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# my.offBLECharacteristicValueChange

> Stop listening for BLE characteristic value changes.

Use this API to remove a listener registered with `my.onBLECharacteristicValueChange`. If no callback is provided, all listeners are removed.

## Parameters

| Property | Type     | Required | Description                                                             |
| -------- | -------- | -------- | ----------------------------------------------------------------------- |
| callback | Function | No       | The specific callback to remove. If omitted, all listeners are removed. |

## Code Example

### Remove All Listeners

```javascript theme={null}
my.offBLECharacteristicValueChange();
```

### Remove Specific Listener

```javascript theme={null}
Page({
  onLoad() {
    my.onBLECharacteristicValueChange(this.handleValueChange);
  },

  handleValueChange(res) {
    console.log('Value changed:', res.value);
  },

  onUnload() {
    my.offBLECharacteristicValueChange(this.handleValueChange);
  }
});
```

### Complete BLE Cleanup

```javascript theme={null}
function cleanupBLE() {
  my.offBLECharacteristicValueChange();
  my.offBluetoothDeviceFound();
  my.offBluetoothAdapterStateChange();
  my.disconnectBLEDevice({ deviceId: currentDeviceId });
  my.closeBluetoothAdapter();
}
```

## Related APIs

<CardGroup cols={2}>
  <Card title="my.onBLECharacteristicValueChange" icon="bell" href="/jsapi/device/bluetooth/my.onBLECharacteristicValueChange">
    Listen for value changes
  </Card>

  <Card title="my.readBLECharacteristicValue" icon="arrow-down" href="/jsapi/device/bluetooth/my.readBLECharacteristicValue">
    Trigger a read on a characteristic
  </Card>
</CardGroup>
