Listar todos los activities disponibles en tu Android

Hay una forma muy sencilla de saber todas las apps que hay instaladas en un dispositivo Android sin necesidad de ningún permiso.

Aquí os dejo el código, la salida se hace por el log ya que es muy larga.

public void listActivities(){
	List<PackageInfo> pInfos = getPackageManager()
		.getInstalledPackages(PackageManager.GET_ACTIVITIES);
	for (PackageInfo pInfo : pInfos) {
		ActivityInfo[] aInfos = pInfo.activities;
		if (aInfos != null) {
			for (ActivityInfo activityInfo : aInfos) {
				Log.d("TEST" , activityInfo.name 
					+ "\t" + activityInfo.permission);
			}
		}
	}
}

Esto nos da un listado de los activities que se pueden invocar y los permisos necesarios. De los nombres de los activities se deduce fácilmente a que app corresponde.

Seguro que os lleváis alguna sorpresa.