# Sensors Usage Guidelines
- [How to Use](#section18816105182315)
The following steps use the sensor whose **sensorTypeId** is **0** as an example. The guidelines for other sensor types are similar.
## How to Use
1. Import the required header files.
```
#include "sensor_agent.h"
#include "sensor_agent_type.h"
```
1. Create a sensor callback.
```
void SensorDataCallbackImpl(SensorEvent *event)
{
if(event == NULL){
return;
}
float *sensorData=(float *)event->data;
}
```
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>The callback must be of the RecordSensorCallback type.
1. Obtain the list of sensors supported by the device.
```
SensorInfo *sensorInfo = (SensorInfo *)NULL;
int32_t count = 0;
int32_t ret = GetAllSensors(&sensorInfo, &count);
```
1. Create a sensor user.
```
SensorUser sensorUser;
sensorUser.callback = SensorDataCallbackImpl; // Assign the created callback SensorDataCallbackImpl to the member variable callback.
```
1. Enable the sensor.
```
int32_t ret = ActivateSensor(0, &sensorUser);
```
1. Subscribe to sensor data.
```
int32_t ret = SubscribeSensor(0, &sensorUser);
```
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>Till now, you can obtain the sensor data via the callback.
1. Unsubscribe from the sensor data.
```
int32_t ret = UnsubscribeSensor(0, &sensorUser);
```
1. Disable the sensor.
```
int32_t ret = DeactivateSensor(0, &sensorUser);
```