除了LSCopyDefaultApplicationURLForURL
之外,还有LSCopyApplicationURLsForURL
来获取所有应用程序,而不仅仅是默认应用程序。
如果您只想获取 MIME 类型的默认应用程序,则有 LSCopyDefaultApplicationURLForContentType
,但它似乎没有等效的方法来获取所有受支持的应用程序。
如何在磁盘上没有实际文件的情况下获取 MIME 类型支持的所有应用程序?
LSCopyAllRoleHandlersForContentType
将返回为处理特定内容类型(使用 UTI(而注册的应用程序捆绑 ID 的列表。
此函数与LSCopyApplicationURLsForURL
之间的逻辑区别在于,列表可以过滤为仅以特定方式(仅显示、编辑等(处理所述内容的应用程序。如果需要所有应用程序,请传递kLSRolesAll
。
若要获取实际的应用程序 URL,请使用返回的应用 ID 之一调用 LSCopyApplicationURLsForBundleIdentifier
。