Проблемы с установочными пакетами в симуляторе Android / устройстве 2.2

#java #android #android-package-managers

#java #Android #android-менеджеры пакетов

Вопрос:

Приведенный выше код предоставляет не все установленные пакеты (например, он не предоставляет пакет, из которого выполняется этот код). Код запускается из основного потока, никогда не пробовал другие версии устройства / эмулятора, кроме device / emulator 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) возвращает пустую карту, опробованную на устройстве ony

Ответ №1:

Если я заменю

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

с

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

Я получаю пакет своего приложения.