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 に答える