40 lines
1.1 KiB
JavaScript
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();;
|
|
}
|
|
}
|