requestMicrophoneAndCamera static method

Future<bool> requestMicrophoneAndCamera()

Request microphone + camera permissions (video calls). Returns true if both are granted.

Implementation

static Future<bool> requestMicrophoneAndCamera() async {
  final micBefore = await Permission.microphone.status;
  final camBefore = await Permission.camera.status;
  developer.log(
    'CallPermissions.requestMicrophoneAndCamera: before mic=$micBefore cam=$camBefore',
  );
  final statuses = await [
    Permission.microphone,
    Permission.camera,
  ].request();

  final micGranted = statuses[Permission.microphone]?.isGranted ?? false;
  final camGranted = statuses[Permission.camera]?.isGranted ?? false;
  developer.log(
    'CallPermissions.requestMicrophoneAndCamera: after mic=${statuses[Permission.microphone]} cam=${statuses[Permission.camera]}',
  );

  if (!micGranted || !camGranted) {
    developer.log(
      'CallPermissions: mic=$micGranted, camera=$camGranted',
    );
  }
  return micGranted && camGranted;
}