getPackageManager () .getInstalledPackages (PackageManager.GET_ACTIVITIES) devuelve nulo

Si llamo a

    PackageManager pm = getPackageManager () ;
    List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_PROVIDERS) ;

Obtengo una lista de los paquetes instalados, incluidos los sobrevivientes que declaran (es decir, con los proveedores de pis [i]. Posiblemente no sean nulos).

Sin embargo, si incluyo PackageManager.GET_ACITIVITIES entre las banderas, como en

    PackageManager pm = getPackageManager () ;
    List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_ACTIVITIES | PackageManager.GET_PROVIDERS) ;

Espero obtener la "misma" lista de paquetes instalados, pero las actividades de pis [i]. También no son nulas. Pero no lo hago, me sale una lista vacía.

¿Hay algo especial en incluir PackageManager.GET_ACTIVITES entre las banderas que no se mencionan endocumentació?

Mi solución actual es dejar PackageManager.GET_ACTIVITIES fuera de las banderas, luego recorrer la lista devuelta de la siguiente manera:

    for (PackageInfo pi : pis) {
        try {
            PackageInfo tmp = pm.getPackageInfo (pi.packageName, PackageManager.GET_ACTIVITIES) ;
            pi.activities = tmp.activities ;
            }
        catch (NameNotFoundException e) {
            Log.e (TAG, e.getMessage ()) ;
            }

Pero eso parece un verdadero error.

La única mención que pude encontrar de getInstalledPackages (PackageManager.GET_ACTIVITIES) devolviendo una lista vacía esaqu, pero el problema en ese caso parece haber sido algo relacionado con llamar a getInstalledPackages () fuera del hilo principal de la aplicación y esa no es la situación en mi caso.

PD. esta es la versión .602 VZW de Gingerbread, en caso de que sea importante

Respuestas a la pregunta(1)

Su respuesta a la pregunta