How to use Light Sensor in Tizen

How to use Light Sensor in Tizen

The light sensor detects the brightness of ambient light. It can be used to measure the brightness level of the screen, apps to measure light illuminance in lux using ambient light sensor of your device for many different purpose like (Photography, IoT device control)
As an example use case, the light sensor can be used to control the brightness of the screen. In a dark environment, the light sensor detects the brightness of the environment and can be used to increase the device screen backlight brightness level. In a brighter environment, the backlight brightness level is lowered to save battery power.
Or the light sensor can be used to control the indoor lighting (IoT device control); the light sensor detects the illuminance of the room environment and can be used to suggest increase/decrease the room lighting level. It can also be used for photographic environment purpose.

 

Steps to do

Considering you are working on simple light sensor app, here is the brief summary of steps that we need to do to make things work:

 

Step 1: Add sensor library (header)

#include <sensor.h>

 

Step 2: Check if your sensor is supported

int error;
bool supported;
sensor_type_e type = SENSOR_LIGHT;
error = sensor_is_supported(type, &supported);

 

Step 3: Create an event listener for your sensor

sensor_h sensor;
sensor_listener_h listener;
error = sensor_create_listener(sensor, &listener);

 

Step 4: Then you have to register a callback for the listener

void
on_sensor_event(sensor_h sensor, sensor_event_s *event, void *user_data)
{
   // Select a specific sensor with a sensor handle
   // This example uses the sensor type, assuming there is only 1 sensor for each type
   sensor_type_e type;
   sensor_get_type(sensor, &type);
   switch (type)
   {
      case SENSOR_LIGHT:
        // Use sensor information
   }
}
error = sensor_listener_set_event_cb(listener, 100, on_sensor_event, user_data);

 

Step 5: Set optional keep on/off

error = sensor_listener_set_option(listener, SENSOR_OPTION_ALWAYS_ON);

 

Step 6: Start listening (from you event/button click/action)

error = sensor_listener_start(listener);

 

Step 7: Read sensor data after starting

sensor_event_s event;
error = sensor_listener_read_data(listener, &event);

 

Step 8: When your task is done close sensor

error = sensor_listener_unset_event_cb(listener);
error = sensor_listener_stop(listener);
error = sensor_destroy_listener(listener);

 

 

Tizen API for further references:

[1] https://developer.tizen.org/dev-guide/2.3.1/org.tizen.web.apireference/html/device_api/mobile/tizen/sensor.html#LightSensor
[2] https://developer.tizen.org/development/api-guides/native-application/system/sensor
[3] https://developer.tizen.org/development/api-guides/native-application/system/sensor#light

 

Here we have created a simple sample app using Tizen light sensor.

 

File attachments: