# DeviceListProvider

Canonical page: https://docs.ovok.com/native-sdk/guide/components/bt-device/device-list-provider

`DeviceListProvider` provides the list state consumed by `BTDeviceList` and `useDeviceList`. It initializes the SDK's built-in device rows, including their display keys, image URIs, integrated device IDs, and disconnected statuses.

Import it from `@ovok/native/bt-device`.

~~~tsx
import {
  BTDeviceList,
  DeviceListProvider,
} from "@ovok/native/bt-device";

<DeviceListProvider>
  <BTDeviceList />
</DeviceListProvider>;
~~~

It accepts `children` and no other props. Wrap the list once in the part of the tree where its status state should live. Mounting `BTProvider` in the same context lets the SDK update matching row statuses when `onDeviceStatusChanged` fires.

Use `useDeviceList` to read or update the list context in app components. Without this provider, the context defaults to an empty list and its setter is a no-op.

See [BTDeviceList](/native-sdk/guide/components/bt-device/bt-device-list/) and [Bluetooth status callbacks](/native-sdk/guide/components/bt-management/bt-provider/on-device-status-changed).
