上記のコードは、インストールされているすべてのパッケージを提供するわけではありません (たとえば、このコードが実行されているパッケージは提供されません)。コードはメイン スレッドから実行され、デバイス/エミュレータ 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) で試してみると、空のマップが返されます - デバイスのみで試してみました