获取快捷方式而无需新的静态/动态快捷方式

pro*_*m85 5 android shortcut android-8.0-oreo android-9.0-pie

我正在从系统中检索所有可能的快捷方式,如下所示:

val pm = context.getPackageManager()
val shortcutsIntent = Intent(Intent.ACTION_CREATE_SHORTCUT)
val ril = pm.queryIntentActivities(shortcutsIntent, 0)
// I progress this data and show my users a custom dialog with apps 
// and possible shortcuts and then will start the shortcut setup with ACTION_CREATE_SHORTCUT intent
Run Code Online (Sandbox Code Playgroud)

这里的问题是,在android O或更高版本上,例如还会返回新的静态快捷方式-就我所知,应用程序必须是默认启动器。我可以以某种方式过滤掉它们吗?

我有一个像应用程序这样的边栏,并且由于缺少权限而只能支持普通的快捷方式,而不能支持较新的静态/动态快捷方式...

Gmail例如提供了标签的快捷方式-我在上面看到了这个可能的快捷方式。但是,如果我开始设置如下所示的快捷方式

 val i = Intent(Intent.ACTION_CREATE_SHORTCUT)
 i.addCategory(Intent.CATEGORY_DEFAULT)
 i.component = ComponentName(packageName, activityName)
 startActivityForResult(i, RequestCodes.SHORTCUT_CREATE_REQUEST_CODE)
Run Code Online (Sandbox Code Playgroud)

并等待结果,我不回来的IntentIntent.EXTRA_SHORTCUT_INTENT(像所有其他人Intent.EXTRA_SHORTCUT_ICON,...)在里面,但一个与LauncherApps.EXTRA_PIN_ITEM_REQUEST它。但这为时已晚,我想从上面的列表中删除此快捷方式,因为我知道我的应用由于缺少权限而无法启动此类快捷方式...