2015-08-16 68 views

回答

0

这是可能的。您必须创建包上下文,然后使用它来提取清单并手动解析它。这是我用来完成我所需要的代码片段。

Context otherAppContext = context.createPackageContext(packageName, CONTEXT_RESTRICTED); 
XmlResourceParser xmlResourceParser = otherAppContext.getAssets().openXmlResourceParser("AndroidManifest.xml"); 
int eventType = xmlResourceParser.getEventType(); 
while (eventType != XmlPullParser.END_DOCUMENT) { 
    if (eventType == XmlPullParser.START_DOCUMENT) { 
      Log.i(DEBUG_TAG, "Start document"); 
    } else if (eventType == XmlPullParser.START_TAG) { 
     String startTag = xmlResourceParser.getName(); 
      Log.i(DEBUG_TAG, "Start tag " + startTag); 
     if (startTag.equals("uses-sdk")) { 
      int count = xmlResourceParser.getAttributeCount(); 
      for (int i = 0; i < count; i++) { 
       String text = xmlResourceParser.getAttributeName(i); 
       if (text.equals("minSdkVersion")) { 
        minSdkVersion = xmlResourceParser.getAttributeIntValue(i, -1); 
        break; 
       } 
      } 
     } 
    } else if (eventType == XmlPullParser.END_TAG) { 
      Log.i(DEBUG_TAG, "End tag " + xmlResourceParser.getName()); 
    } else if (eventType == XmlPullParser.TEXT) { 
      Log.i(DEBUG_TAG, "Text " + xmlResourceParser.getText()); 
    } 
    eventType = xmlResourceParser.next(); 
} 

工程就像一个魅力。不要忘记在某处关闭资源解析器。

相关问题