checkMultiplePermissions method
Check status of multiple permissions
Implementation
@override
Future<Map<String, String>> checkMultiplePermissions(
List<String> permissions,
) async {
try {
debugPrint('Checking multiple permissions: $permissions');
// Map permissions to platform-specific format
List<String> platformPermissions = permissions.map((permission) {
if (Platform.isIOS && permission.startsWith('android.')) {
return _mapAndroidPermissionToIOS(permission);
}
return permission;
}).toList();
// Filter out unsupported permissions
platformPermissions = platformPermissions.where((permission) {
if (Platform.isIOS && permission == 'phone') {
return false; // Phone permission not supported on iOS
}
return true;
}).toList();
debugPrint('Platform-mapped permissions: $platformPermissions');
final result = await methodChannel.invokeMethod<Map<dynamic, dynamic>>(
'checkMultiplePermissions',
{'permissions': platformPermissions},
);
debugPrint('Multiple permissions result: $result');
return result?.map(
(key, value) => MapEntry(key.toString(), value.toString()),
) ??
{};
} on PlatformException catch (e) {
debugPrint('Error checking multiple permissions: ${e.message}');
return {};
}
}