Cómo obtener la lista de todos los accesos directos instalados que se encuentran en el Lanzador de pantalla de inicio en Android

Quería obtener la lista de todos los accesos directos instalados en el lanzador de pantalla de inicio mediante programación. He encontrado un montón de fragmentos en línea pero ninguno de ellos proporciona la salida correcta

para este fragmento:

Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
ArrayList<Intent> intentList = new ArrayList<Intent>();
Intent intent=null;
String launchers="";
final PackageManager packageManager=getPackageManager();
for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(shortcutsIntent,   0)) {
launchers=launchers+"\n"+resolveInfo.activityInfo.packageName;
intent=packageManager
         .getLaunchIntentForPackage(resolveInfo.activityInfo.packageName);
intentList.add(intent);    
}

esto solo proporciona los accesos directos predeterminados como contactos, navegadores, etc. No es exactamente lo que se encuentra en la pantalla de inicio.

mientras que este fragmento de código:

    PackageManager pm = getPackageManager();
    Intent i = new Intent("android.intent.action.MAIN");
    i.addCategory("android.intent.category.HOME");
    List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
    if (lst != null) {
       for (ResolveInfo resolveInfo : lst) {  
           }
       }
    }

solo proporciona el iniciador predeterminado que es com.android.launcher.

Respuestas a la pregunta(1)

Su respuesta a la pregunta