Jak uzyskać listę wszystkich zainstalowanych skrótów znalezionych na ekranie głównym Launcher w systemie Android

Programowo chciałem uzyskać listę wszystkich zainstalowanych skrótów na ekranie startowym ekranu głównego. Znalazłem wiele fragmentów online, ale żaden z nich nie zapewnia właściwego wyjścia

dla tego fragmentu:

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);    
}

zapewnia to tylko wstępnie ustawione skróty, takie jak kontakty, przeglądarki itp. nie dokładnie to, co znajduje się na ekranie głównym.

podczas gdy ten fragment:

    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) {  
           }
       }
    }

udostępnia tylko domyślny program uruchamiający, który jest com.android.launcher.

questionAnswers(1)

yourAnswerToTheQuestion