1.0.3 • Published 11 months ago

react-native-ambient-light-sensor v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

react-native-ambient-light-sensor

Helps to find your surrounding's light value (in lux unit) (for android only) using device light sensor

Installation

npm install react-native-ambient-light-sensor

Usage

import { hasLightSensor, startLightSensor, stopLightSensor } from 'react-native-ambient-light-sensor';
import { View, Text, DeviceEventEmitter } from 'react-native';

// ...

export default function App() {
  const [result, setResult] = React.useState<number | undefined>();
  const [hasSensor, setHasSensor] = React.useState<boolean>();

  useEffect(() => {
      hasLightSensor().then(setHasSensor);
      startLightSensor();
      
      const subscription = DeviceEventEmitter.addListener(
        'LightSensor',
        (data: { lightValue: number }) => {
            setResult(data.lightValue);
        },
    );

    return () => {
        stopLightSensor();
        subscription?.remove();
    };
  }, []);

  return (
    <View>
      <Text>Device has sensor: {hasSensor ? 'YES' : 'NO'}. Light Result Value: {result}</Text>
    </View>
  );
}

Use case

You can apply any logic of your own based on the surrounding's light condition. For example, to auto turn on your device's flash/torch light if the surrounding environment is dark/dim.

Important Note

The primary sensor data type for ambient light sensors is illuminance in lux (lumens per square meter). Use the data from below table to find and apply logic to your application accordingly.

The following example data set represents rough thresholds for common lighting conditions, and the corresponding lighting step. Here, each lighting step represents a change in lighting environment.

Lighting conditionFrom (lux)To (lux)
Pitch Black010
Very Dark1150
Dark Indoors51200
Dim Indoors201400
Normal Indoors4011000
Bright Indoors10015000
Dim Outdoors500110,000
Cloudy Outdoors10,00130,000
Direct Sunlight30,001100,000
Note: This data set is for illustration and may not be completely accurate for all users or situations.

Want to know more about its implementation

Check out the article - https://medium.com/@shayanchatterjee7/creating-a-surrounding-light-sensor-module-for-android-device-in-react-native-6a0f9fa7d13e

NPM Package

Checkout the npm package of it - https://www.npmjs.com/package/react-native-ambient-light-sensor

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library