BasicLabsScan/app/camera-permission-handler.js
2021-11-19 15:56:20 +01:00

40 lines
1.1 KiB
JavaScript

import { PermissionsAndroid, Platform } from 'react-native';
const isAndroidMarshmallowOrNewer = Platform.OS === 'android' && Platform.Version >= 23
export const checkCameraPermissions = async () => {
if (isAndroidMarshmallowOrNewer) {
return await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA);
} else {
return true;
}
}
export const requestCameraPermissions = async () => {
if (isAndroidMarshmallowOrNewer) {
try {
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("Android Camera Permission has been granted.");
return Promise.resolve();
} else {
console.log("Android Camera Permission has been denied.");
return Promise.reject()
}
} catch (err) {
return Promise.reject(err)
}
} else {
return Promise.resolve()
}
}
export const requestCameraPermissionsIfNeeded = async () => {
const hasPermissions = await checkCameraPermissions();
if (!hasPermissions) {
return requestCameraPermissions();
} else {
return Promise.resolve();;
}
}