queryIntentActivities()采用了什么标志(MATCH_DEFAULT_ONLY除外)?
我问,因为我希望我的应用程序检查我的其他应用程序是否已安装。因为它使用的是Intent.ACTION_MAIN,所以似乎没有必要使用MATCH_DEFAULT_ONLY。我应该使用零作为标志,还是有更合适的东西?
答案 0 :(得分:0)
如果您希望应用程序检查是否安装了其他应用程序,则可以使用PackageManager类的getApplicationInfo(String packageName, int flags)
方法。传递要查找的包名称,并将0作为第二个参数传递。
将此方法放在try-catch块中,如果方法抛出PackageManager.NameNotFoundException
,则表示未安装其他应用程序:)
答案 1 :(得分:0)
如果您查看AOSP中PackageManger
类的source code,那将有助于回答其他可能的标志。
PackageManger
类具有下面的代码,
/** @hide */
@IntDef(flag = true, prefix = { "GET_", "MATCH_" }, value = {
GET_META_DATA,
GET_RESOLVED_FILTER,
GET_SHARED_LIBRARY_FILES,
MATCH_ALL,
MATCH_DEBUG_TRIAGED_MISSING,
MATCH_DISABLED_COMPONENTS,
MATCH_DISABLED_UNTIL_USED_COMPONENTS,
MATCH_DEFAULT_ONLY,
MATCH_DIRECT_BOOT_AUTO,
MATCH_DIRECT_BOOT_AWARE,
MATCH_DIRECT_BOOT_UNAWARE,
MATCH_SYSTEM_ONLY,
MATCH_UNINSTALLED_PACKAGES,
MATCH_INSTANT,
GET_DISABLED_COMPONENTS,
GET_DISABLED_UNTIL_USED_COMPONENTS,
GET_UNINSTALLED_PACKAGES,
})
在这里您可以看到MATCH_DEFAULT_ONLY
标志以及提到的其他几个标志。