checkAndRequestCameraAndStoragePermissions function

Future<bool> checkAndRequestCameraAndStoragePermissions()

Implementation

Future<bool> checkAndRequestCameraAndStoragePermissions() async {
  List<Permission> permissionsToRequest = [];

  // Always include camera
  permissionsToRequest.add(Permission.camera);

  if (Platform.isAndroid) {
    final int sdkInt = int.parse(Platform.version.split('.').first);

    if (sdkInt >= 33) {
      // Android 13 and above
      permissionsToRequest.add(Permission.photos); // READ_MEDIA_IMAGES
      permissionsToRequest.add(Permission.storage); // READ_MEDIA_IMAGES
    } else {
      // Android 12 and below
      permissionsToRequest
          .add(Permission.storage); // Covers both read and write
    }
  }
  else{
    permissionsToRequest
        .add(Permission.storage); // Covers both read and write
  }

  final Map<Permission, PermissionStatus> statuses =
      await permissionsToRequest.request();

  statuses.entries.forEach((element) {
    log("ELEMENT : ${element.key} : ${element.value}");

  },);

  return (statuses.values.contains(false)) == false;
}