Helps to find your surrounding's light value (in lux unit) (for android only) using device light sensor
npm install react-native-ambient-light-sensor
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>
);
}
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.
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 condition | From (lux) | To (lux) |
---|---|---|
Pitch Black | 0 | 10 |
Very Dark | 11 | 50 |
Dark Indoors | 51 | 200 |
Dim Indoors | 201 | 400 |
Normal Indoors | 401 | 1000 |
Bright Indoors | 1001 | 5000 |
Dim Outdoors | 5001 | 10,000 |
Cloudy Outdoors | 10,001 | 30,000 |
Direct Sunlight | 30,001 | 100,000 |
Note: This data set is for illustration and may not be completely accurate for all users or situations.
Check out the article - https://medium.com/@shayanchatterjee7/creating-a-surrounding-light-sensor-module-for-android-device-in-react-native-6a0f9fa7d13e
Checkout the npm package of it - https://www.npmjs.com/package/react-native-ambient-light-sensor
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
Made with create-react-native-library