requestDynamicPermissions method

Future<Map<String, String>> requestDynamicPermissions(
  1. List<String> permissions
)

Request multiple permissions with dialogs (native implementation)

Implementation

Future<Map<String, String>> requestDynamicPermissions(
  List<String> permissions,
) async {
  try {
    debugPrint('Requesting dynamic permissions: $permissions');

    // Filter out platform-specific permissions that aren't relevant
    List<String> platformPermissions = permissions.where((permission) {
      if (Platform.isIOS && permission.startsWith('android.')) {
        return false;
      }
      if (Platform.isAndroid && permission.startsWith('ios.')) {
        return false;
      }
      return true;
    }).toList();

    final result = await methodChannel.invokeMethod<Map<dynamic, dynamic>>(
      'requestDynamicPermissions',
      {'permissions': platformPermissions},
    );
    debugPrint('Dynamic permissions result: $result');
    return result?.map(
          (key, value) => MapEntry(key.toString(), value.toString()),
        ) ??
        {};
  } on PlatformException catch (e) {
    debugPrint('Error requesting dynamic permissions: ${e.message}');
    return {};
  }
}