getFeatures method
Gets the list of features currently in AndroidManifest.xml.
Implementation
List<Map<String, dynamic>> getFeatures() {
final manifestFile = File(_manifestPath);
if (!manifestFile.existsSync()) {
return [];
}
try {
final content = manifestFile.readAsStringSync();
final document = XmlDocument.parse(content);
final manifest = document.rootElement;
const androidNs = 'http://schemas.android.com/apk/res/android';
final features = <Map<String, dynamic>>[];
for (final feature in manifest.findAllElements('uses-feature')) {
final nameAttr = feature.getAttribute('name', namespace: androidNs) ??
feature.getAttribute('android:name');
final requiredAttr =
feature.getAttribute('required', namespace: androidNs) ??
feature.getAttribute('android:required');
if (nameAttr != null) {
features.add({
'name': nameAttr,
'required': requiredAttr?.toLowerCase() == 'true',
});
}
}
return features;
} catch (_) {
return [];
}
}