Android 检索另一个已安装应用程序的minsdk

Android 检索另一个已安装应用程序的minsdk,android,Android,给定packageinfo和applicationinfo对象,是否有任何方法可以直接获取另一个已安装应用程序的minsdk值?或者无法直接拉出清单并对其进行解析?这是可能的。您必须创建包上下文,然后使用它来提取清单并手动解析它。下面是我用来完成所需任务的代码片段 Context otherAppContext = context.createPackageContext(packageName, CONTEXT_RESTRICTED); XmlResourceParser xmlResourc

给定packageinfo和applicationinfo对象,是否有任何方法可以直接获取另一个已安装应用程序的minsdk值?或者无法直接拉出清单并对其进行解析?

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

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();
}
Context-otherAppContext=Context.createPackageContext(packageName,Context\u-RESTRICTED);
XmlResourceParser XmlResourceParser=otherAppContext.getAssets().openXmlResourceParser(“AndroidManifest.xml”);
int eventType=xmlResourceParser.getEventType();
while(eventType!=XmlPullParser.END_文档){
if(eventType==XmlPullParser.START\u文档){
Log.i(调试标签,“开始文档”);
}else if(eventType==XmlPullParser.START_标记){
字符串startTag=xmlResourceParser.getName();
Log.i(调试标签,“开始标签”+startTag);
if(startTag.equals(“使用sdk”)){
int count=xmlResourceParser.getAttributeCount();
for(int i=0;i
工作起来很有魅力。别忘了在某处关闭资源解析器