getPermissions method

List<String> getPermissions()

Gets the list of permissions currently in AndroidManifest.xml.

Implementation

List<String> getPermissions() {
  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 permissions = <String>[];
    for (final permission in manifest.findAllElements('uses-permission')) {
      final nameAttr =
          permission.getAttribute('name', namespace: androidNs) ??
              permission.getAttribute('android:name');
      if (nameAttr != null) {
        permissions.add(nameAttr);
      }
    }

    return permissions;
  } catch (_) {
    return [];
  }
}