sigue proceso lanix fallando detuvo descargar continĂșa continua android process

proceso - descargar android process media



El applicationInfo.name de PackageManager siempre es nulo (3)

PackageManager pm = this.getPackageManager(); ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses(); for(RunningAppProcessInfo process : runningAppProcesses) { try { ApplicationInfo ai = pm.getApplicationInfo(process.processName, PackageManager.GET_META_DATA); Log.d(TAG, applicationInfo.name + ""); } catch (NameNotFoundException e) { e.printStackTrace(); } }

process.processName devuelve un nombre de paquete válido, pero applicationInfo.name siempre es nulo.


La razón por la que el nombre es nulo es que realmente es ... nulo.

Por favor, consulte la documentación del manifiesto de Android:

android: name El nombre completo de una subclase de aplicación implementada para la aplicación. Cuando se inicia el proceso de solicitud, esta clase se crea una instancia antes que cualquiera de los componentes de la aplicación.

La subclase es opcional; la mayoría de las aplicaciones no necesitarán una. En ausencia de una subclase, Android usa una instancia de la clase de aplicación base.

Lo que desea es el nombre de la aplicación, que se establece en el atributo de etiqueta de la etiqueta de la aplicación, y que Ragunath explicó cómo obtener.


Prueba esto

Log.d(TAG, ai.processName + "");

o esto

Log.d(TAG, ai.packageName + "");


Se utilizó applicationInfo.loadLabel(packageManagerInstance) para encontrar el nombre de la aplicación, pero debería haber una razón por la que applicationInfo.name no funcionó.

Editar

applicationInfo.name es el nombre de una subclase de Application si tiene alguna.