xml – 访问android:installLocation清单属性

我正在尝试编写一个Android 2.2应用程序,它将找到可以移动到SD卡的已安装应用程序.执行此操作的权限在 AndroidManifest.xml文件中编码为根级别属性android:installLocation”. PackageInfo似乎有一个除了这个属性的所有东西的接口.我可以打开已安装的apk并解压AndroidManifest.xml文件,但它似乎采用了一些二进制编码格式,一些随机的互联网用户已经编写了解码器,但这似乎是一项非常多的工作.

有没有我缺少的界面?

事实证明,虽然没有直接的API调用获取installLocation,但我也不必手动解析二进制XML,因为提供的XmlResourceParser可以对其进行处理.
// Experimentally determined
private static final int auto = 0;
private static final int internalOnly = 1;
private static final int preferExternal = 2;

AssetManager am = createPackageContext(packageName,0).getAssets();
XmlResourceParser xml = am.openXmlResourceParser("AndroidManifest.xml");
int eventType = xml.getEventType();
xmlloop:
while (eventType != XmlPullParser.END_DOCUMENT) {
    switch (eventType) {
        case XmlPullParser.START_TAG:
            if (! xml.getName().matches("manifest")) {
                break xmlloop;
            } else {
                attrloop:
                for (int j = 0; j < xml.getAttributeCount(); j++) {
                    if (xml.getAttributeName(j).matches("installLocation")) {
                        switch (Integer.parseInt(xml.getAttributeValue(j))) {
                            case auto:
                                // Do stuff
                                break;
                            case internalOnly:
                                // Do stuff
                                break;
                            case preferExternal:
                                // Do stuff
                                break;
                            default:
                                // Shouldn't happen
                                // Do stuff
                                break;
                        }
                        break attrloop;
                    }
                }
            }
            break;
        }
        eventType = xml.nextToken();
    }

呃,我想那里有一个开关,有一个应该只是一个if.好吧.你明白了.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念