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
    }
  }

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


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