import 'dart:convert'; import 'dart:typed_data'; import 'package:flutter/services.dart'; Map jsonToMap(Map json) { final Map map = {}; json.forEach((key, value) { if (value is String) { map[key] = value; } else if (value is int) { map[key] = value; } else if (value is bool) { map[key] = value; } else if (value is double) { map[key] = value; } else if (value is List) { map[key] = value.map((item) => wrap(item)).toList(); } else if (value is Map) { map[key] = jsonToMap(value); } else { map[key] = value.toString(); } }); return map; } Intent jsonToIntent(Map json) { final map = jsonToMap(json); return Intent()..putExtras(map); } Map bundleToJson(Map bundle) { final json = {}; bundle.forEach((key, value) { json[key] = wrap(value); }); return json; } dynamic wrap(dynamic o) { if (o == null) { return null; } if (o is List || o is Map) { return o; } return o; } Future> getApplicationSignature(String packageName) async { final signatures = []; try { final packageInfo = await MethodChannel('your_channel_name').invokeMethod('getPackageInfo', packageName); if (packageInfo['signatures'] != null) { for (var signature in packageInfo['signatures']) { final digest = sha256.convert(utf8.encode(signature)).toString(); signatures.add(digest); } } return signatures; } catch (e) { // Handle error } return signatures; } String bytesToHex(Uint8List bytes) { final hexBuffer = StringBuffer(); for (var byte in bytes) { hexBuffer.write(byte.toRadixString(16).padLeft(2, '0').toUpperCase()); } return hexBuffer.toString(); }