Programmatically retrieve permissions from manifest.xml in android

前端 未结 5 722
无人共我
无人共我 2020-12-05 18:39

I have to programmatically retrieve permissions from the manifest.xml of an android application and I don\'t know how to do it.

I read the post here but I am not ent

5条回答
  •  没有蜡笔的小新
    2020-12-05 19:06

    Use this:

    public static String getListOfPermissions(final Context context)
    {
        String _permissions = "";
    
        try
        {
            final AssetManager _am = context.createPackageContext(context.getPackageName(), 0).getAssets();
            final XmlResourceParser _xmlParser = _am.openXmlResourceParser(0, "AndroidManifest.xml");
            int _eventType = _xmlParser.getEventType();
            while (_eventType != XmlPullParser.END_DOCUMENT)
            {
                if ((_eventType == XmlPullParser.START_TAG) && "uses-permission".equals(_xmlParser.getName()))
                {
                    for (byte i = 0; i < _xmlParser.getAttributeCount(); i ++)
                    {
                        if (_xmlParser.getAttributeName(i).equals("name"))
                        {
                            _permissions += _xmlParser.getAttributeValue(i) + "\n";
                        }
                    }
                }
                _eventType = _xmlParser.nextToken();
            }
            _xmlParser.close(); // Pervents memory leak.
        }
        catch (final XmlPullParserException exception)
        {
            exception.printStackTrace();
        }
        catch (final PackageManager.NameNotFoundException exception)
        {
            exception.printStackTrace();
        }
        catch (final IOException exception)
        {
            exception.printStackTrace();
        }
    
        return _permissions;
    }
    // Test: Log.wtf("test", getListOfPermissions(getApplicationContext()));
    

提交回复
热议问题