requestDynamicPermissions method
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 {};
}
}