0

上面的代码并没有给出每个已安装的包(例如,它没有给出运行此代码的包)。代码从主线程运行,从未尝试过除设备/模拟器 2.2 之外的其他设备/模拟器版本。知道有什么问题吗?

谢谢

public Map<String, String> getInstalledPackages()
{
    Map<String, String> apps = new HashMap<String, String>();
    List<PackageInfo> appsInfo = pm.getInstalledPackages(0);

    for (PackageInfo appInfo: appsInfo)
    {
        try 
        {
            apps.put(appInfo.packageName, appInfo.versionName);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    return apps;
}

PS:如果我使用 pm.getInstalledPackages(PackageManager.GET_ACTIVITIES) 尝试它,它会返回一个空地图 - 仅在设备上尝试过

4

1 回答 1

0

如果我更换

List<PackageInfo> appsInfo = pm.getInstalledPackages(0);

List<PackageInfo> appsInfo = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

我得到了我的应用程序包。

于 2011-05-16T20:18:19.960 回答