Android:获取安装的快捷方式

| 我已经了解了制作快捷方式的方法,但是我需要找到一种获取安装在手机上的快捷方式列表的方法。 我希望用户能够选择他/她的快捷方式之一,然后从我的应用程序中启动它。有没有办法做到这一点(一个API),或者我需要一个反射方法来调用系统服务吗?     
已邀请:
        快捷方式是Launcher专用的。没有API,您尝试做的任何事情都会非常脆弱,因为不同的启动器实现(和版本)将具有不同的存储结构。     
        这是在启动器中完成的方法...
Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
List<ResolveInfo> shortcuts = getPackageManager().queryIntentActivities(shortcutsIntent, 0);
    
        除了乔纳森, 每个应用程序都可以执行快捷方式。应用程序清单中指定的每个快捷方式。因此,您可以获得快捷方式列表(活动中的此方法): 科特林
fun printShortcuts() {
    val shortcutIntent = Intent(Intent.ACTION_CREATE_SHORTCUT)
    val shortcuts = packageManager.queryIntentActivities(shortcutIntent, 0)
    shortcuts.forEach {
        println(\"name = ${it.activityInfo.name}, label = ${it.loadLabel(packageManager)}\")
    }
}
它将打印如下内容:
I/System.out: name = com.whatsapp.camera.CameraActivity, label = WhatsApp Camera
I/System.out: name = com.android.contacts.ContactShortcut, label = Contact
I/System.out: name = alias.DialShortcut, label = Direct dial
I/System.out: name = alias.MessageShortcut, label = Direct message
    
        我正在尝试做同样的事情,但与此主题相关的很多事情还不清楚,至少对我来说还不清楚。.....一个例子是Openapp市场,每次您\下载\”应用,但其快捷方式实际上只是指向html页面的链接。无论如何我有2个android手机,并且在第一个中正在工作中,第二个中没有创建任何快捷方式....... 在5月的应用程序中,我将执行以下操作:
 Intent shortcutIntent = new Intent(this,FinestraPrincipaleActivity.class);
 shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  shortcutIntent.putExtra(\"someParameter\", \"HelloWorld\");

 Intent addIntent = new Intent();
 addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
 addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, \"Shortcut Name\");
  addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,  
 Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));

addIntent.setAction(\"com.android.launcher.action.INSTALL_SHORTCUT\");
 this.sendBroadcast(addIntent);
但是有人告诉我,这是错误的,但是我没有找到其他创建快捷方式的方法。     

要回复问题请先登录注册